// private decRef functions static void IArray_decRef(IArrayPNTR pntr){ if(DAL_mem_contains_pointers(pntr->data)){ unsigned i, length; length = pntr->length; if(length == 0) // if this is a 0-length array and contains pointers length = 1; // we know 1 element was creayted for safety, so // garbage collect it here for(i=0; i<length; i++) DAL_decRef(((void **) pntr->data)[i]); // array decref code //DAL_decRef( array_loc(pntr, i, &success) ); // alternative deref code } DAL_mem_set_contains_pointers(pntr->data, false); DAL_decRef(pntr->data); }
NetPacket_PNTR copy_NetPacket(NetPacket_PNTR p) { DAL_incRef(p); NetPacket_PNTR copy = construct_NetPacket(p->addr, p->payload); DAL_decRef(p); return copy; }
struct_Suaddr_apayload___PNTR copy_struct_Suaddr_apayload__( struct_Suaddr_apayload___PNTR p ) { DAL_incRef( p ) ; struct_Suaddr_apayload___PNTR copy = construct_struct_Suaddr_apayload__( p->addr, p->payload ); DAL_decRef( p ) ; return copy; }
void decRef_struct_Suaddr_apayload__( struct_Suaddr_apayload___PNTR pntr ) { DAL_decRef( pntr->payload ) ; }
void listFreeNode(ListNode_PNTR node){ // force ref count decrement on object being kept in node payload DAL_decRef(node->payload); BASE_mem_free(node); }
void decRef_NetPacket(NetPacket_PNTR pntr) { DAL_decRef(pntr->addr); DAL_decRef(pntr->payload); }