void DaoCinValue_Delete( DaoCinValue *self ) { #ifdef DAO_USE_GC_LOGGER DaoObjectLogger_LogDelete( (DaoValue*) self ); #endif GC_DecRC( self->cintype ); GC_DecRC( self->value ); dao_free( self ); }
void DaoInterface_Delete( DaoInterface *self ) { #ifdef DAO_USE_GC_LOGGER DaoObjectLogger_LogDelete( (DaoValue*) self ); #endif if( self->concretes ) DMap_Delete( self->concretes ); GC_DecRC( self->abtype ); DList_Delete( self->supers ); DMap_Delete( self->methods ); dao_free( self ); }
void DaoCinType_Delete( DaoCinType *self ) { #ifdef DAO_USE_GC_LOGGER DaoObjectLogger_LogDelete( (DaoValue*) self ); #endif GC_DecRC( self->abstract ); GC_DecRC( self->target ); GC_DecRC( self->citype ); GC_DecRC( self->vatype ); DList_Delete( self->supers ); DMap_Delete( self->methods ); dao_free( self ); }
void DaoObject_Delete( DaoObject *self ) { int i; #ifdef DAO_USE_GC_LOGGER DaoObjectLogger_LogDelete( (DaoValue*) self ); #endif GC_DecRC( self->defClass ); GC_DecRC( self->parent ); if( self->isRoot ){ for(i=0; i<self->valueCount; i++) GC_DecRC( self->objValues[i] ); if( self->objValues != (DaoValue**) (self + 1) ) dao_free( self->objValues ); } dao_free( self ); }