312
313
314
315
316
317
318
319
320
321
322
323
324
325
|
ret_len--;
@try {
ret = [OFString
stringWithCString: ret_c
encoding: encoding
length: ret_len];
} @finally {
[self freeMemory: ret_c];
}
tmp2 = [self
allocMemoryWithSize: len - i - 1];
if (tmp2 != NULL)
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
|
ret_len--;
@try {
ret = [OFString
stringWithCString: ret_c
encoding: encoding
length: ret_len];
} @catch (OFException *e) {
/*
* Append data to cache to
* prevent loss of data due to
* wrong encoding.
*/
cache = [self
resizeMemory: cache
toSize: cacheLen +
len];
if (cache != NULL)
memcpy(cache + cacheLen,
tmp, len);
cacheLen += len;
@throw e;
} @finally {
[self freeMemory: ret_c];
}
tmp2 = [self
allocMemoryWithSize: len - i - 1];
if (tmp2 != NULL)
|