366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
|
- (size_t)retainCount
{
return PRE_IVAR->retain_count;
}
- release
{
if (!--PRE_IVAR->retain_count)
return [self free];
return self;
}
- free
{
void **iter = PRE_IVAR->memchunks + PRE_IVAR->memchunks_size;
while (iter-- > PRE_IVAR->memchunks)
free(*iter);
if (PRE_IVAR->memchunks != NULL)
free(PRE_IVAR->memchunks);
free((char*)self - PRE_IVAR_ALIGN);
return nil;
}
@end
|
|
>
|
>
|
<
|
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
|
- (size_t)retainCount
{
return PRE_IVAR->retain_count;
}
- release
{
if (!--PRE_IVAR->retain_count) {
[self dealloc];
return nil;
}
return self;
}
- (void)dealloc
{
void **iter = PRE_IVAR->memchunks + PRE_IVAR->memchunks_size;
while (iter-- > PRE_IVAR->memchunks)
free(*iter);
if (PRE_IVAR->memchunks != NULL)
free(PRE_IVAR->memchunks);
free((char*)self - PRE_IVAR_ALIGN);
}
@end
|