void CFCCallable_destroy(CFCCallable *self) { CFCBase_decref((CFCBase*)self->return_type); CFCBase_decref((CFCBase*)self->param_list); CFCBase_decref((CFCBase*)self->docucomment); CFCSymbol_destroy((CFCSymbol*)self); }
void CFCVariable_destroy(CFCVariable *self) { CFCBase_decref((CFCBase*)self->type); FREEMEM(self->local_c); FREEMEM(self->global_c); FREEMEM(self->local_dec); CFCSymbol_destroy((CFCSymbol*)self); }
void CFCClass_destroy(CFCClass *self) { CFCBase_decref((CFCBase*)self->docucomment); CFCBase_decref((CFCBase*)self->parent); for (size_t i = 0; self->children[i] != NULL; i++) { CFCBase_decref((CFCBase*)self->children[i]); } for (size_t i = 0; self->functions[i] != NULL; i++) { CFCBase_decref((CFCBase*)self->functions[i]); } for (size_t i = 0; self->methods[i] != NULL; i++) { CFCBase_decref((CFCBase*)self->methods[i]); } for (size_t i = 0; self->member_vars[i] != NULL; i++) { CFCBase_decref((CFCBase*)self->member_vars[i]); } for (size_t i = 0; self->inert_vars[i] != NULL; i++) { CFCBase_decref((CFCBase*)self->inert_vars[i]); } CFCBase_decref((CFCBase*)self->file_spec); FREEMEM(self->children); FREEMEM(self->functions); FREEMEM(self->methods); FREEMEM(self->member_vars); FREEMEM(self->inert_vars); FREEMEM(self->parent_class_name); FREEMEM(self->struct_sym); FREEMEM(self->ivars_struct); FREEMEM(self->full_ivars_struct); FREEMEM(self->ivars_func); FREEMEM(self->full_ivars_func); FREEMEM(self->full_ivars_offset); FREEMEM(self->short_vtable_var); FREEMEM(self->full_struct_sym); FREEMEM(self->full_vtable_var); FREEMEM(self->privacy_symbol); FREEMEM(self->include_h); CFCSymbol_destroy((CFCSymbol*)self); }