Revision: 22668
          http://sourceforge.net/p/bibdesk/svn/22668
Author:   hofman
Date:     2018-09-25 21:49:52 +0000 (Tue, 25 Sep 2018)
Log Message:
-----------
don't do unnecessary checks when we did not find valid container

Modified Paths:
--------------
    trunk/bibdesk/BDSKAddCommand.m
    trunk/bibdesk/BDSKRemoveCommand.m

Modified: trunk/bibdesk/BDSKAddCommand.m
===================================================================
--- trunk/bibdesk/BDSKAddCommand.m      2018-09-25 15:23:32 UTC (rev 22667)
+++ trunk/bibdesk/BDSKAddCommand.m      2018-09-25 21:49:52 UTC (rev 22668)
@@ -111,17 +111,19 @@
             } else if (locationSpecifier) {
                 insertionContainer = [locationSpecifier 
objectsByEvaluatingSpecifier];
                 // make sure this is a valid object, so not something like a 
range specifier
-                if ([insertionContainer 
respondsToSelector:@selector(objectSpecifier)] == NO)
+                if ([insertionContainer 
respondsToSelector:@selector(objectSpecifier)] == NO) {
                     insertionContainer = nil;
-                containerClassDescription = [insertionContainer 
scriptClassDescription];
-                if ([classDescriptions containsObject:[NSNull null]] == NO) {
-                    for (NSString *key in [containerClassDescription 
toManyRelationshipKeys]) {
-                        NSScriptClassDescription *keyClassDescription = 
[containerClassDescription classDescriptionForKey:key];
-                        if ([insertionClassDescription 
isKindOfClassDescription:keyClassDescription] &&
-                            [containerClassDescription 
hasWritablePropertyForKey:key] &&
-                            [containerClassDescription 
isLocationRequiredToCreateForKey:key] == NO) {
-                            insertionKey = key;
-                            break;
+                } else {
+                    containerClassDescription = [insertionContainer 
scriptClassDescription];
+                    if ([classDescriptions containsObject:[NSNull null]] == 
NO) {
+                        for (NSString *key in [containerClassDescription 
toManyRelationshipKeys]) {
+                            NSScriptClassDescription *keyClassDescription = 
[containerClassDescription classDescriptionForKey:key];
+                            if ([containerClassDescription 
hasWritablePropertyForKey:key] &&
+                                [containerClassDescription 
isLocationRequiredToCreateForKey:key] == NO &&
+                                [insertionClassDescription 
isKindOfClassDescription:keyClassDescription]) {
+                                insertionKey = key;
+                                break;
+                            }
                         }
                     }
                 }

Modified: trunk/bibdesk/BDSKRemoveCommand.m
===================================================================
--- trunk/bibdesk/BDSKRemoveCommand.m   2018-09-25 15:23:32 UTC (rev 22667)
+++ trunk/bibdesk/BDSKRemoveCommand.m   2018-09-25 21:49:52 UTC (rev 22668)
@@ -113,15 +113,17 @@
             } else if (containerSpecifier) {
                 removeContainer = [containerSpecifier 
objectsByEvaluatingSpecifier];
                 // make sure this is a valid object, so not something like a 
range specifier
-                if ([removeContainer 
respondsToSelector:@selector(objectSpecifier)] == NO)
+                if ([removeContainer 
respondsToSelector:@selector(objectSpecifier)] == NO) {
                     removeContainer = nil;
-                containerClassDescription = [removeContainer 
scriptClassDescription];
-                for (NSString *key in [containerClassDescription 
toManyRelationshipKeys]) {
-                    NSScriptClassDescription *keyClassDescription = 
[containerClassDescription classDescriptionForKey:key];
-                    if ([removeClassDescription 
isKindOfClassDescription:keyClassDescription] &&
-                        [containerClassDescription 
hasWritablePropertyForKey:key]) {
-                        removeKey = key;
-                        break;
+                } else {
+                    containerClassDescription = [removeContainer 
scriptClassDescription];
+                    for (NSString *key in [containerClassDescription 
toManyRelationshipKeys]) {
+                        NSScriptClassDescription *keyClassDescription = 
[containerClassDescription classDescriptionForKey:key];
+                        if ([containerClassDescription 
hasWritablePropertyForKey:key] &&
+                            [removeClassDescription 
isKindOfClassDescription:keyClassDescription]) {
+                            removeKey = key;
+                            break;
+                        }
                     }
                 }
             }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to