Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGermano Cavalcante <germano.costa@ig.com.br>2021-02-24 21:13:24 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2021-02-24 22:20:02 +0300
commitd3a96e5022e121426c8926d0507effe4e9b4005f (patch)
tree3e0098df3838656897ec115c98e7af3c3c81831c
parent8cc4366a98065c2162ca0ab8daa1e4f6458245f6 (diff)
t
-rw-r--r--source/blender/python/intern/bpy_rna_callback.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/source/blender/python/intern/bpy_rna_callback.c b/source/blender/python/intern/bpy_rna_callback.c
index 7f8ea54ab98..34c1b8e84d6 100644
--- a/source/blender/python/intern/bpy_rna_callback.c
+++ b/source/blender/python/intern/bpy_rna_callback.c
@@ -24,6 +24,7 @@
#include <Python.h>
#include "../generic/python_utildefines.h"
+#include "../generic/py_capi_utils.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)
{
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;
if (use_gil) {
gilstate = PyGILState_Ensure();
}
-
- Py_DECREF(tuple);
+ ED_region_draw_cb_remove_by_type(art, cb_region_draw, cb_customdata_free);
if (use_gil) {
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)
{
+ 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);
+
+ if (use_gil) {
+ PyGILState_Release(gilstate);
+ }
}
/** \} */