Differences From Artifact [e80aafd4d3]:
- File src/OFString+XMLEscaping.m — part of check-in [3b97fc3cd9] at 2014-01-04 00:24:08 on branch trunk — Update copyright. (user: js, size: 2353) [annotate] [blame] [check-ins using]
To Artifact [fb650f788f]:
- File
src/OFString+XMLEscaping.m
— part of check-in
[b5c8b62533]
at
2014-07-06 11:04:57
on branch trunk
— OFString+*.m: Add a few missing autorelease pools
Those were only a problem if the user created its own OFString subclass,
as calls to -[UTF8String] could then create a new, autoreleased C
string. As OFString_UTF8 simply returns the internal C string, this
hasn't been a problem when not subclassing OFString. (user: js, size: 2427) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #import "OFOutOfMemoryException.h" int _OFString_XMLEscaping_reference; @implementation OFString (XMLEscaping) - (OFString*)stringByXMLEscaping { char *retCString; const char *string, *append; size_t length, retLength, appendLen; size_t i, j; OFString *ret; string = [self UTF8String]; | > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #import "OFOutOfMemoryException.h" int _OFString_XMLEscaping_reference; @implementation OFString (XMLEscaping) - (OFString*)stringByXMLEscaping { void *pool = objc_autoreleasePoolPush(); char *retCString; const char *string, *append; size_t length, retLength, appendLen; size_t i, j; OFString *ret; string = [self UTF8String]; |
︙ | ︙ | |||
93 94 95 96 97 98 99 | retLength += appendLen - 1; memcpy(retCString + j, append, appendLen); j += appendLen; } else retCString[j++] = string[i]; } | < > > | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | retLength += appendLen - 1; memcpy(retCString + j, append, appendLen); j += appendLen; } else retCString[j++] = string[i]; } assert(j == retLength); objc_autoreleasePoolPop(pool); @try { ret = [OFString stringWithUTF8String: retCString length: retLength]; } @finally { free(retCString); } return ret; } @end |