// 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);
}
Exemplo n.º 2
0
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 ) ;
} 
Exemplo n.º 5
0
void listFreeNode(ListNode_PNTR node){
  // force ref count decrement on object being kept in node payload
  DAL_decRef(node->payload);
  BASE_mem_free(node);
}
Exemplo n.º 6
0
void decRef_NetPacket(NetPacket_PNTR pntr)
{
	DAL_decRef(pntr->addr);
	DAL_decRef(pntr->payload);
}