//inline void IoObject_freeData(IoObject *self) { IoTagFreeFunc *func = IoTag_freeFunc(IoObject_tag(self)); if (func) { (*func)(self); } else if (IoObject_dataPointer(self)) { io_free(IoObject_dataPointer(self)); } IoObject_setDataPointer_(self, NULL); }
//inline void IoObject_freeData(IoObject *self) { IoTagFreeFunc *func = IoTag_freeFunc(IoObject_tag(self)); if (func) { //if(func == free) { //printf("Tag func is free\n"); //if (IoObject_name(self)) printf("free %s\n", IoObject_name(self)); } (*func)(self); } else if (IoObject_dataPointer(self)) { io_free(IoObject_dataPointer(self)); } IoObject_setDataPointer_(self, NULL); }