summaryrefslogtreecommitdiff
path: root/plugins/pychrysalide/plugin.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-09-18 07:08:35 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-09-18 07:08:35 (GMT)
commit7abda358d11810e464f2bf51f8333836ddc17e90 (patch)
tree37a4b9dda883de13f729ed60eab11b1a4e3251ad /plugins/pychrysalide/plugin.c
parent264883a204ff89fcf53bb9c07bac1248096af0ef (diff)
Updated the API used to load binary contents.
Diffstat (limited to 'plugins/pychrysalide/plugin.c')
-rw-r--r--plugins/pychrysalide/plugin.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/plugins/pychrysalide/plugin.c b/plugins/pychrysalide/plugin.c
index cc69dd7..b957eff 100644
--- a/plugins/pychrysalide/plugin.c
+++ b/plugins/pychrysalide/plugin.c
@@ -169,7 +169,14 @@ static void g_python_plugin_init(GPythonPlugin *plugin)
static void g_python_plugin_dispose(GPythonPlugin *plugin)
{
- Py_DECREF(plugin->instance);
+ PyGILState_STATE gstate; /* Sauvegarde d'environnement */
+
+ gstate = PyGILState_Ensure();
+
+ Py_XDECREF(plugin->instance);
+ plugin->instance = NULL;
+
+ PyGILState_Release(gstate);
G_OBJECT_CLASS(g_python_plugin_parent_class)->dispose(G_OBJECT(plugin));
@@ -653,6 +660,9 @@ static void g_python_plugin_handle_binary_content(const GPythonPlugin *plugin, P
{
PyObject *args; /* Arguments pour l'appel */
PyObject *value; /* Valeurs obtenues */
+ PyGILState_STATE gstate; /* Sauvegarde d'environnement */
+
+ gstate = PyGILState_Ensure();
args = PyTuple_New(4);
@@ -661,11 +671,13 @@ static void g_python_plugin_handle_binary_content(const GPythonPlugin *plugin, P
PyTuple_SetItem(args, 2, PyLong_FromUnsignedLong(wid));
PyTuple_SetItem(args, 3, pygobject_new(G_OBJECT(status)));
- value = run_python_method(plugin->instance, "handle_binary_content", args);
+ value = run_python_method(plugin->instance, "handle_content", args);
Py_XDECREF(value);
Py_DECREF(args);
+ PyGILState_Release(gstate);
+
}