diff options
Diffstat (limited to 'Foundation/GTMNSString+XML.m')
-rw-r--r-- | Foundation/GTMNSString+XML.m | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/Foundation/GTMNSString+XML.m b/Foundation/GTMNSString+XML.m index bc2f130..909a8f1 100644 --- a/Foundation/GTMNSString+XML.m +++ b/Foundation/GTMNSString+XML.m @@ -113,18 +113,16 @@ static NSString *AutoreleasedCloneForXML(NSString *src, BOOL escaping) { // it's so short that it isn't really worth trying to share. const UniChar *buffer = CFStringGetCharactersPtr((CFStringRef)src); if (!buffer) { - size_t memsize = length * sizeof(UniChar); - - // nope, alloc buffer and fetch the chars ourselves - buffer = malloc(memsize); - if (!buffer) { + // We want this buffer to be autoreleased. + NSMutableData *data = [NSMutableData dataWithLength:length * sizeof(UniChar)]; + if (!data) { // COV_NF_START - Memory fail case _GTMDevLog(@"couldn't alloc buffer"); return nil; // COV_NF_END } - [src getCharacters:(void*)buffer]; - [NSData dataWithBytesNoCopy:(void*)buffer length:memsize]; + [src getCharacters:[data mutableBytes]]; + buffer = [data bytes]; } const UniChar *goodRun = buffer; |