diff options
author | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-01-22 17:45:46 +0000 |
---|---|---|
committer | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-01-22 17:45:46 +0000 |
commit | 25b5666ce1385c98063cec56a102cb58e674322d (patch) | |
tree | c7e1091e2843b842e76237fcb230bc92430e3be7 | |
parent | 13de8bddc251a512f04acaac12aa1c7d1b11e495 (diff) | |
download | pygobject-25b5666ce1385c98063cec56a102cb58e674322d.tar.gz |
Bug 164441: leak in gobject.type_register(); patch by Mark McLoughlin
-rw-r--r-- | gobject/gobjectmodule.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 337b3297..0f1ba8f0 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -941,12 +941,15 @@ pyg_type_register(PyObject *self, PyObject *args) class->tp_name, name_serial > 1? name_serial_str : NULL, NULL); + Py_DECREF(module); } else { if (module) Py_DECREF(module); else PyErr_Clear(); - type_name = g_strdup(class->tp_name); + type_name = g_strconcat(class->tp_name, + name_serial > 1? name_serial_str : NULL, + NULL); } /* convert '.' in type name to '+', which isn't banned (grumble) */ for (i = 0; type_name[i] != '\0'; i++) |