Ejemplo n.º 1
0
void RE_engine_free(RenderEngine *engine)
{
#ifdef WITH_PYTHON
	if (engine->py_instance) {
		BPY_DECREF_RNA_INVALIDATE(engine->py_instance);
	}
#endif

	if (engine->flag & RE_ENGINE_USED_FOR_VIEWPORT) {
		BLI_end_threaded_malloc();
	}

	MEM_freeN(engine);
}
Ejemplo n.º 2
0
void WM_operator_free(wmOperator *op)
{

#ifdef WITH_PYTHON
	if (op->py_instance) {
		/* do this first in case there are any __del__ functions or
		 * similar that use properties */
		BPY_DECREF_RNA_INVALIDATE(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);
}