Revision: 7407
          http://skim-app.svn.sourceforge.net/skim-app/?rev=7407&view=rev
Author:   hofman
Date:     2011-07-31 11:24:38 +0000 (Sun, 31 Jul 2011)

Log Message:
-----------
reorganize code and destroy tmp data when reading fails

Modified Paths:
--------------
    trunk/SKMainDocument.m

Modified: trunk/SKMainDocument.m
===================================================================
--- trunk/SKMainDocument.m      2011-07-31 10:02:53 UTC (rev 7406)
+++ trunk/SKMainDocument.m      2011-07-31 11:24:38 UTC (rev 7407)
@@ -695,6 +695,7 @@
         [self updateChangeCount:NSChangeDone];
         return YES;
     } else {
+        SKDESTROY(tmpData);
         if (outError != NULL)
             *outError = error ?: [NSError 
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file", 
@"Error description")];
         return NO;
@@ -733,10 +734,8 @@
                                                        otherButton:nil
                                          
informativeTextWithFormat:NSLocalizedString(@"Skim was not able to read the 
notes at %@. %@ Do you want to continue to open the PDF document anyway?", 
@"Informative text in alert dialog"), [path 
stringByAbbreviatingWithTildeInPath], [error localizedDescription]];
                     if ([alert runModal] == NSAlertDefaultReturn) {
-                        [data release];
-                        data = nil;
-                        [pdfDoc release];
-                        pdfDoc = nil;
+                        SKDESTROY(data);
+                        SKDESTROY(pdfDoc);
                         error = [NSError 
userCancelledErrorWithUnderlyingError:error];
                     }
                 } else if ([array count]) {
@@ -747,17 +746,17 @@
     } else  {
         if ((fileData = [[NSData alloc] initWithContentsOfURL:absoluteURL 
options:NSUncachedRead error:&error])) {
             if ([docType isEqualToString:SKPDFDocumentType]) {
-                if ((data = [fileData retain]))
-                    pdfDoc = [[SKPDFDocument alloc] initWithURL:absoluteURL];
-            } else if ([docType isEqualToString:SKPostScriptDocumentType]) {
-                if ((data = [SKConversionProgressController 
newPDFDataWithPostScriptData:fileData error:&error]))
+                data = [fileData retain];
+                pdfDoc = [[SKPDFDocument alloc] initWithURL:absoluteURL];
+            } else {
+                if ([docType isEqualToString:SKPostScriptDocumentType])
+                    data = [SKConversionProgressController 
newPDFDataWithPostScriptData:fileData error:&error];
+                else if ([docType isEqualToString:SKDVIDocumentType])
+                    data = [SKConversionProgressController 
newPDFDataWithDVIFile:[absoluteURL path] error:&error];
+                else if ([docType isEqualToString:SKXDVDocumentType])
+                    data = [SKConversionProgressController 
newPDFDataWithXDVFile:[absoluteURL path] error:&error];
+                if (data)
                     pdfDoc = [[SKPDFDocument alloc] initWithData:data];
-            } else if ([docType isEqualToString:SKDVIDocumentType]) {
-                if ((data = [SKConversionProgressController 
newPDFDataWithDVIFile:[absoluteURL path] error:&error]))
-                    pdfDoc = [[SKPDFDocument alloc] initWithData:data];
-            } else if ([docType isEqualToString:SKXDVDocumentType]) {
-                if ((data = [SKConversionProgressController 
newPDFDataWithXDVFile:[absoluteURL path] error:&error]))
-                    pdfDoc = [[SKPDFDocument alloc] initWithData:data];
             }
         }
         if (pdfDoc) {
@@ -773,12 +772,9 @@
                                                        otherButton:nil
                                          
informativeTextWithFormat:NSLocalizedString(@"Skim was not able to read the 
notes at %@. %@ Do you want to continue to open the PDF document anyway?", 
@"Informative text in alert dialog"), [[absoluteURL path] 
stringByAbbreviatingWithTildeInPath], [error localizedDescription]];
                     if ([alert runModal] == NSAlertDefaultReturn) {
-                        [fileData release];
-                        fileData = nil;
-                        [data release];
-                        data = nil;
-                        [pdfDoc release];
-                        pdfDoc = nil;
+                        SKDESTROY(fileData);
+                        SKDESTROY(data);
+                        SKDESTROY(pdfDoc);
                         error = [NSError 
userCancelledErrorWithUnderlyingError:error];
                     }
                 }
@@ -849,8 +845,11 @@
     }
     [fileData release];
     
-    if (didRead == NO && outError != NULL)
-        *outError = error ?: [NSError 
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file", 
@"Error description")];
+    if (didRead == NO) {
+        SKDESTROY(tmpData);
+        if (outError)
+            *outError = error ?: [NSError 
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file", 
@"Error description")];
+    }
     
     return didRead;
 }


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

------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to