Revision: 24538
          http://sourceforge.net/p/bibdesk/svn/24538
Author:   hofman
Date:     2020-01-17 15:55:14 +0000 (Fri, 17 Jan 2020)
Log Message:
-----------
avoid autorelease of complex string when getting multiple macros

Modified Paths:
--------------
    trunk/bibdesk/BDSKBibTeXParser.m
    trunk/bibdesk/BDSKMacroResolver.m

Modified: trunk/bibdesk/BDSKBibTeXParser.m
===================================================================
--- trunk/bibdesk/BDSKBibTeXParser.m    2020-01-17 14:32:42 UTC (rev 24537)
+++ trunk/bibdesk/BDSKBibTeXParser.m    2020-01-17 15:55:14 UTC (rev 24538)
@@ -400,11 +400,12 @@
             CFStringTrimWhitespace((CFMutableStringRef)value);
             
             key = [key stringByTrimmingCharactersInSet:[NSCharacterSet 
whitespaceAndNewlineCharacterSet]];
-            if ((value = [NSString stringWithBibTeXString:value 
macroResolver:macroResolver error:&error]))
-                [macros setObject:value forKey:key];
-            else
+            if ((s = [[NSString alloc] initWithBibTeXString:value 
macroResolver:macroResolver error:&error])) {
+                [macros setObject:s forKey:key];
+                [s release];
+            } else {
                 NSLog(@"Ignoring invalid complex macro: %@", [error 
localizedDescription]);
-            
+            }
         }
                
     }
@@ -486,11 +487,12 @@
         CFStringTrimWhitespace((CFMutableStringRef)value);
         
         key = [key stringByTrimmingCharactersInSet:[NSCharacterSet 
whitespaceAndNewlineCharacterSet]];
-        if ((value = [NSString stringWithBibTeXString:value 
macroResolver:macroResolver error:&error]))
-            [macros setObject:value forKey:key];
-        else
+        if ((s = [[NSString alloc] initWithBibTeXString:value 
macroResolver:macroResolver error:&error])) {
+            [macros setObject:s forKey:key];
+            [s release];
+        } else {
             NSLog(@"Ignoring invalid complex macro: %@", [error 
localizedDescription]);
-               
+        }
     }
        
     [scanner release];

Modified: trunk/bibdesk/BDSKMacroResolver.m
===================================================================
--- trunk/bibdesk/BDSKMacroResolver.m   2020-01-17 14:32:42 UTC (rev 24537)
+++ trunk/bibdesk/BDSKMacroResolver.m   2020-01-17 15:55:14 UTC (rev 24538)
@@ -335,10 +335,12 @@
     
     for (NSString *key in macros) {
         // we don't check for circular macros, there shouldn't be any. Or do 
we want to be paranoid?
-        if ((value = [NSString stringWithBibTeXString:[macros 
objectForKey:key] macroResolver:self error:&error]))
+        if ((value = [[NSString alloc] initWithBibTeXString:[macros 
objectForKey:key] macroResolver:self error:&error])) {
             [macroDefinitions setObject:value forKey:key];
-        else
+            [value release];
+        } else {
             NSLog(@"Ignoring invalid complex macro: %@", [error 
localizedDescription]);
+        }
     }
     if ([oldMacros count]) {
         // we remove the old style prefs, as they are now merged with the new 
ones

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



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to