This commit is contained in:
Germano Cavalcante
2021-02-24 15:13:24 -03:00
parent 8cc4366a98
commit d3a96e5022

View File

@@ -24,6 +24,7 @@
#include <Python.h> #include <Python.h>
#include "../generic/python_utildefines.h" #include "../generic/python_utildefines.h"
#include "../generic/py_capi_utils.h"
#include "DNA_space_types.h" #include "DNA_space_types.h"
@@ -495,28 +496,40 @@ PyObject *pyrna_callback_classmethod_remove(PyObject *UNUSED(self), PyObject *ar
static void cb_customdata_free(void *customdata) static void cb_customdata_free(void *customdata)
{ {
PyObject *tuple = customdata; PyObject *tuple = customdata;
bool use_gil = true; /* !PyC_IsInterpreterActive(); */
Py_DECREF(tuple);
}
void BPY_callback_screen_free(struct ARegionType *art)
{
bool use_gil = !PyC_IsInterpreterActive();
PyGILState_STATE gilstate; PyGILState_STATE gilstate;
if (use_gil) { if (use_gil) {
gilstate = PyGILState_Ensure(); gilstate = PyGILState_Ensure();
} }
ED_region_draw_cb_remove_by_type(art, cb_region_draw, cb_customdata_free);
Py_DECREF(tuple);
if (use_gil) { if (use_gil) {
PyGILState_Release(gilstate); PyGILState_Release(gilstate);
} }
} }
void BPY_callback_screen_free(struct ARegionType *art)
{
ED_region_draw_cb_remove_by_type(art, cb_region_draw, cb_customdata_free);
}
void BPY_callback_wm_free(struct wmWindowManager *wm) void BPY_callback_wm_free(struct wmWindowManager *wm)
{ {
bool use_gil = !PyC_IsInterpreterActive();
PyGILState_STATE gilstate;
if (use_gil) {
gilstate = PyGILState_Ensure();
}
BLI_assert(PyC_IsInterpreterActive());
WM_paint_cursor_remove_by_type(wm, cb_wm_cursor_draw, cb_customdata_free); WM_paint_cursor_remove_by_type(wm, cb_wm_cursor_draw, cb_customdata_free);
if (use_gil) {
PyGILState_Release(gilstate);
}
} }
/** \} */ /** \} */