diff --git a/Source/GSString.m b/Source/GSString.m index e3200625a..85a2b0604 100644 --- a/Source/GSString.m +++ b/Source/GSString.m @@ -255,7 +255,7 @@ setup() GSCSubStringClass = [GSCSubString class]; GSUnicodeSubStringClass = [GSUnicodeSubString class]; GSMutableStringClass = [GSMutableString class]; - NSConstantStringClass = [NSString constantStringClass]; + NSConstantStringClass = [NXConstantString class]; /* * Cache some selectors and method implementations for @@ -3508,6 +3508,7 @@ transmute(ivars self, NSString *aString) if (self == [NXConstantString class]) { behavior_class_add_class(self, [GSCString class]); + NSConstantStringClass = self; } } diff --git a/Source/NSString.m b/Source/NSString.m index 8efa5c0a4..f51269551 100644 --- a/Source/NSString.m +++ b/Source/NSString.m @@ -376,7 +376,6 @@ handle_printf_atsign (FILE *stream, NSStringClass = self; [self setVersion: 1]; NSMutableStringClass = [NSMutableString class]; - NSConstantStringClass = [NXConstantString class]; NSDataClass = [NSData class]; GSPlaceholderStringClass = [GSPlaceholderString class]; GSStringClass = [GSString class]; @@ -462,8 +461,16 @@ handle_printf_atsign (FILE *stream, } } +/** + * Return the class used to dtore constant strings (those ascii strings + * placed in ythe source code using the @"this is a string" syntax. + */ + (Class) constantStringClass { + if (NSConstantStringClass == 0) + { + NSConstantStringClass = [NXConstantString class]; + } return NSConstantStringClass; }