[pygobject/interface_override] interface: Fix leak when overriding GInterfaceInfo
- From: Thibault Saunier <tsaunier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pygobject/interface_override] interface: Fix leak when overriding GInterfaceInfo
- Date: Tue, 29 Mar 2022 14:40:47 +0000 (UTC)
commit 8c7cfc8faa0972a47386f11859f5d002a672e643
Author: Thibault Saunier <tsaunier igalia com>
Date: Tue Mar 29 18:38:00 2022 +0200
interface: Fix leak when overriding GInterfaceInfo
When the interface is being registered by PyGObject and again through
an override, the first one is being leaks, free it at this point.
gi/pyginterface.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/gi/pyginterface.c b/gi/pyginterface.c
index 34db8fac..eafaacb8 100644
--- a/gi/pyginterface.c
+++ b/gi/pyginterface.c
@@ -85,14 +85,20 @@ pyg_register_interface(PyObject *dict, const gchar *class_name,
}
g_type_set_qdata(gtype, pyginterface_type_key, type);
-
+
PyDict_SetItemString(dict, (char *)class_name, (PyObject *)type);
-
+
}
void
pyg_register_interface_info(GType gtype, const GInterfaceInfo *info)
{
+ GInterfaceInfo *prev_info = pyg_lookup_interface_info (gtype);
+
+ if (prev_info) {
+ g_free (prev_info);
+ }
+
g_type_set_qdata(gtype, pyginterface_info_key, (gpointer) info);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]