summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Henstridge <jamesh@src.gnome.org>2000-06-29 01:33:08 +0000
committerJames Henstridge <jamesh@src.gnome.org>2000-06-29 01:33:08 +0000
commit2272e14921ec035aeb22328ecd91e285f3803f46 (patch)
treef690a5fc39f7e0b7d2feba931dc9876e95fe1884
parent4e62c6450844aa49430fa450ce555370cb43dedb (diff)
downloadpygobject-2272e14921ec035aeb22328ecd91e285f3803f46.tar.gz
pygobject-2272e14921ec035aeb22328ecd91e285f3803f46.tar.xz
pygobject-2272e14921ec035aeb22328ecd91e285f3803f46.zip
(pygobject_[gs]et_param): free the GValue afterwards so as not to
leak memory.
-rw-r--r--gobject/gobjectmodule.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
index 43f5792..c824d14 100644
--- a/gobject/gobjectmodule.c
+++ b/gobject/gobjectmodule.c
@@ -479,6 +479,7 @@ pygobject_get_param(PyGObject *self, PyObject *args)
gchar *param_name;
GParamSpec *pspec;
GValue value;
+ PyObject *ret;
if (!PyArg_ParseTuple(args, "s:GObject.get_param", &param_name))
return NULL;
@@ -491,7 +492,9 @@ pygobject_get_param(PyGObject *self, PyObject *args)
}
g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
g_object_get_param(self->obj, param_name, &value);
- return pyg_value_as_pyobject(&value);
+ ret = pyg_value_as_pyobject(&value);
+ g_value_unset(&value);
+ return ret;
}
static PyObject *
@@ -518,6 +521,7 @@ pygobject_set_param(PyGObject *self, PyObject *args)
return NULL;
}
g_object_set_param(self->obj, param_name, &value);
+ g_value_unset(&value);
Py_INCREF(Py_None);
return Py_None;
}