From: <ho...@us...> - 2008-09-25 22:26:51
|
Revision: 13681 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13681&view=rev Author: hofman Date: 2008-09-25 22:26:47 +0000 (Thu, 25 Sep 2008) Log Message: ----------- Don't allocate an instance of a placeholder class, rather use a public string class to allocate a new instance. Modified Paths: -------------- trunk/bibdesk/NSString_BDSKExtensions.m Modified: trunk/bibdesk/NSString_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSString_BDSKExtensions.m 2008-09-25 22:17:51 UTC (rev 13680) +++ trunk/bibdesk/NSString_BDSKExtensions.m 2008-09-25 22:26:47 UTC (rev 13681) @@ -176,32 +176,33 @@ NSData *data = [[NSData allocWithZone:[self zone]] initWithContentsOfFile:path options:NSMappedRead error:NULL]; NSString *string = nil; + Class stringClass = [self isKindOfClass:[NSMutableString class]] ? [NSMutableString class] : [NSString class]; // if we're guessing, try the reliable encodings first if(try && dataHasUnicodeByteOrderMark(data) && encoding != NSUnicodeStringEncoding) - string = [[[self class] allocWithZone:[self zone]] initWithData:data encoding:NSUnicodeStringEncoding]; + string = [[stringClass allocWithZone:[self zone]] initWithData:data encoding:NSUnicodeStringEncoding]; if(try && nil == string && encoding != NSUTF8StringEncoding) - string = [[[self class] allocWithZone:[self zone]] initWithData:data encoding:NSUTF8StringEncoding]; + string = [[stringClass allocWithZone:[self zone]] initWithData:data encoding:NSUTF8StringEncoding]; // read com.apple.TextEncoding on Leopard, or when reading a Tiger file saved on Leopard if(try && nil == string) { encoding = [[NSFileManager defaultManager] appleStringEncodingAtPath:path error:NULL]; if (encoding > 0) - string = [[[self class] allocWithZone:[self zone]] initWithData:data encoding:encoding]; + string = [[stringClass allocWithZone:[self zone]] initWithData:data encoding:encoding]; } // try the encoding passed as a parameter, if non-zero (zero encoding is never valid) if(nil == string && encoding > 0) - string = [[[self class] allocWithZone:[self zone]] initWithData:data encoding:encoding]; + string = [[stringClass allocWithZone:[self zone]] initWithData:data encoding:encoding]; // now we just try a few wild guesses if(nil == string && try && encoding != [NSString defaultCStringEncoding]) - string = [[[self class] allocWithZone:[self zone]] initWithData:data encoding:[NSString defaultCStringEncoding]]; + string = [[stringClass allocWithZone:[self zone]] initWithData:data encoding:[NSString defaultCStringEncoding]]; if(nil == string && try && encoding != [BDSKStringEncodingManager defaultEncoding]) - string = [[[self class] allocWithZone:[self zone]] initWithData:data encoding:[BDSKStringEncodingManager defaultEncoding]]; + string = [[stringClass allocWithZone:[self zone]] initWithData:data encoding:[BDSKStringEncodingManager defaultEncoding]]; // final fallback is Mac Roman (gapless) if(nil == string && try && encoding != NSMacOSRomanStringEncoding) - string = [[[self class] allocWithZone:[self zone]] initWithData:data encoding:NSMacOSRomanStringEncoding]; + string = [[stringClass allocWithZone:[self zone]] initWithData:data encoding:NSMacOSRomanStringEncoding]; [data release]; [self release]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |