t
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \} */
|
/** \} */
|
||||||
|
Reference in New Issue
Block a user