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