From f0edd87e607cccc41946ddbd003593841b028e7c Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 4 Sep 2009 16:52:35 -0400 Subject: [PATCH] Bug 593322 - Fix unref of GIUnresolvedInfo instances We are treating GIUnresolvedInfo as a GIBaseInfo, but the structures had drifted out of sync. Add a repository pointer and bring them back into sync. Based on a report and patch from Jan Hudec --- girepository/ginfo.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/girepository/ginfo.c b/girepository/ginfo.c index e7b0b8b..19723dd 100644 --- a/girepository/ginfo.c +++ b/girepository/ginfo.c @@ -30,21 +30,28 @@ struct _GIBaseInfo { + /* Keep this part in sync with GIUnresolvedInfo below */ gint type; gint ref_count; GIRepository *repository; GIBaseInfo *container; + /* Resolved specific */ + GTypelib *typelib; guint32 offset; }; struct _GIUnresolvedInfo { + /* Keep this part in sync with GIBaseInfo above */ gint type; gint ref_count; + GIRepository *repository; GIBaseInfo *container; + /* Unresolved specific */ + const gchar *name; const gchar *namespace; }; @@ -196,6 +203,7 @@ g_info_from_entry (GIRepository *repository, unresolved->type = GI_INFO_TYPE_UNRESOLVED; unresolved->ref_count = 1; + unresolved->repository = repository; unresolved->container = NULL; unresolved->name = name; unresolved->namespace = namespace; -- 2.39.2