diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2018-09-18 07:08:35 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2018-09-18 07:08:35 (GMT) |
commit | 7abda358d11810e464f2bf51f8333836ddc17e90 (patch) | |
tree | 37a4b9dda883de13f729ed60eab11b1a4e3251ad /plugins/pychrysalide/plugin.c | |
parent | 264883a204ff89fcf53bb9c07bac1248096af0ef (diff) |
Updated the API used to load binary contents.
Diffstat (limited to 'plugins/pychrysalide/plugin.c')
-rw-r--r-- | plugins/pychrysalide/plugin.c | 16 |
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); + } |