Skip to content

Commit

Permalink
Fixed bug that caused importing a mapping to sometimes fail if there …
Browse files Browse the repository at this point in the history
…was an existing user mapping with the same name.
  • Loading branch information
Andrew Madsen committed May 20, 2015
1 parent 4a7c0c2 commit 42b6de0
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions Source/MIKMIDIMappingManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -115,16 +115,32 @@ - (NSSet *)userMappingsForControllerName:(NSString *)name
return result;
}

- (MIKMIDIMapping *)mappingWithName:(NSString *)mappingName;
- (MIKMIDIMapping *)userMappingWithName:(NSString *)mappingName;
{
for (MIKMIDIMapping *mapping in self.mappings) {
for (MIKMIDIMapping *mapping in self.userMappings) {
if ([mapping.name isEqualToString:mappingName]) {
return mapping;
}
}
return nil;
}

- (MIKMIDIMapping *)bundledMappingWithName:(NSString *)mappingName;
{
for (MIKMIDIMapping *mapping in self.bundledMappings) {
if ([mapping.name isEqualToString:mappingName]) {
return mapping;
}
}
return nil;
}

- (MIKMIDIMapping *)mappingWithName:(NSString *)mappingName;
{
MIKMIDIMapping *result = [self userMappingWithName:mappingName];
return result ?: [self bundledMappingWithName:mappingName];
}

- (MIKMIDIMapping *)importMappingFromFileAtURL:(NSURL *)URL overwritingExistingMapping:(BOOL)shouldOverwrite error:(NSError **)error;
{
#if !TARGET_OS_IPHONE
Expand Down Expand Up @@ -275,7 +291,7 @@ - (NSSet *)mappings { return [self.bundledMappings setByAddingObjectsFromSet:sel

- (void)addUserMappingsObject:(MIKMIDIMapping *)mapping
{
MIKMIDIMapping *existing = [self mappingWithName:mapping.name];
MIKMIDIMapping *existing = [self userMappingWithName:mapping.name];
if (existing) [self.internalUserMappings removeObject:existing];
mapping.bundledMapping = NO;
[self.internalUserMappings addObject:mapping];
Expand Down

0 comments on commit 42b6de0

Please sign in to comment.