qulogic/gplugin

Use Py_CLEAR and Py_XINCREF on private attributes.
feature/new-glib-stuff
2019-01-24, Elliott Sales de Andrade
6067f6b7ecb0
Parents 5f50e5512a85
Children 254c5996697e
Use Py_CLEAR and Py_XINCREF on private attributes.
--- a/python/gplugin-python-plugin.c Thu Jan 24 19:13:45 2019 -0500
+++ b/python/gplugin-python-plugin.c Thu Jan 24 19:19:42 2019 -0500
@@ -98,13 +98,9 @@
priv = gplugin_python_plugin_get_instance_private(plugin);
- if(priv->module)
- Py_DECREF(priv->module);
-
+ Py_XINCREF(module);
+ Py_CLEAR(priv->module);
priv->module = module;
-
- if(priv->module)
- Py_INCREF(priv->module);
}
static gpointer
@@ -129,12 +125,9 @@
priv = gplugin_python_plugin_get_instance_private(plugin);
- if(priv->load)
- Py_DECREF(priv->load);
-
+ Py_XINCREF(func);
+ Py_CLEAR(priv->load);
priv->load = func;
- if(priv->load)
- Py_INCREF(priv->load);
}
static gpointer
@@ -159,12 +152,9 @@
priv = gplugin_python_plugin_get_instance_private(plugin);
- if(priv->unload)
- Py_DECREF(priv->unload);
-
+ Py_XINCREF(func);
+ Py_CLEAR(priv->unload);
priv->unload = func;
- if(priv->unload)
- Py_INCREF(priv->unload);
}
/******************************************************************************
@@ -256,12 +246,9 @@
gplugin_python_plugin_finalize(GObject *obj) {
GPluginPythonPluginPrivate *priv = gplugin_python_plugin_get_instance_private(GPLUGIN_PYTHON_PLUGIN(obj));
- if(priv->module)
- Py_DECREF(priv->module);
- if(priv->load)
- Py_DECREF(priv->load);
- if(priv->unload)
- Py_DECREF(priv->unload);
+ Py_CLEAR(priv->module);
+ Py_CLEAR(priv->load);
+ Py_CLEAR(priv->unload);
g_clear_pointer(&priv->filename, g_free);
g_clear_object(&priv->loader);