...
This commit is contained in:
@@ -7,6 +7,7 @@ void *rc_alloc(size_t size, void (*destructor)(void *self))
|
||||
{
|
||||
printf("rc_alloc %zu bytes\n", size);
|
||||
ref_header *header = malloc(sizeof(ref_header) + size);
|
||||
memset(header, 0, size);
|
||||
if (!header)
|
||||
{
|
||||
exit(69);
|
||||
@@ -20,6 +21,9 @@ void *rc_alloc(size_t size, void (*destructor)(void *self))
|
||||
|
||||
void rc_retain(void *obj)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
|
||||
printf("rc_retain\n");
|
||||
ref_header *header = ((ref_header *)obj) - 1;
|
||||
header->ref_count++;
|
||||
@@ -27,6 +31,9 @@ void rc_retain(void *obj)
|
||||
|
||||
void rc_release(void *obj)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
|
||||
ref_header *header = ((ref_header *)obj) - 1;
|
||||
printf("rc_release\n");
|
||||
if (--header->ref_count == 0)
|
||||
|
||||
Reference in New Issue
Block a user