@@ -29,10 +29,11 @@ int _OFString_URLEncoding_reference; @implementation OFString (URLEncoding) - (OFString*)stringByURLEncoding { + void *pool = objc_autoreleasePoolPush(); const char *string = [self UTF8String]; char *retCString; size_t i; OFString *ret; @@ -68,10 +69,12 @@ retCString[i++] = (low > 9 ? low - 10 + 'A' : low + '0'); } } + objc_autoreleasePoolPop(pool); + @try { ret = [OFString stringWithUTF8String: retCString length: i]; } @finally { free(retCString); @@ -80,10 +83,11 @@ return ret; } - (OFString*)stringByURLDecoding { + void *pool = objc_autoreleasePoolPush(); OFString *ret; const char *string = [self UTF8String]; char *retCString; char byte = 0; int state = 0; @@ -126,10 +130,12 @@ break; } } retCString[i] = '\0'; + + objc_autoreleasePoolPop(pool); if (state != 0) { free(retCString); @throw [OFInvalidFormatException exception]; }