This commit is contained in:
nub31
2025-10-29 15:14:13 +01:00
parent 34a44f80a8
commit bf4c8838c6
8 changed files with 189 additions and 74 deletions

View File

@@ -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)