void RE_engine_free(RenderEngine *engine) { #ifdef WITH_PYTHON if (engine->py_instance) { BPY_DECREF(engine->py_instance); } #endif if (engine->text) MEM_freeN(engine->text); MEM_freeN(engine); }
void WM_operator_free(wmOperator *op) { #ifdef WITH_PYTHON if(op->py_instance) { /* do this first incase there are any __del__ functions or * similar that use properties */ BPY_DECREF(op->py_instance); } #endif if(op->ptr) { op->properties= op->ptr->data; MEM_freeN(op->ptr); } if(op->properties) { IDP_FreeProperty(op->properties); MEM_freeN(op->properties); } if(op->reports && (op->reports->flag & RPT_FREE)) { BKE_reports_clear(op->reports); MEM_freeN(op->reports); } if(op->macro.first) { wmOperator *opm, *opmnext; for(opm= op->macro.first; opm; opm= opmnext) { opmnext = opm->next; WM_operator_free(opm); } } MEM_freeN(op); }