From acd55584c2ca703a885f5c3908ef08ea2900f450 Mon Sep 17 00:00:00 2001 From: Sjoerd Simons Date: Wed, 19 Oct 2011 23:26:35 +0100 Subject: [PATCH] Use the correct size when freeing unused info A GIBaseInfo struct can underneath either be GIRealInfo *or* GIUnresolvedInfo if the type is GI_INFO_TYPE_UNRESOLVED. So when we eventually free the structures slice use the correct struct type otherwise things get unhappy. --- gibaseinfo.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gibaseinfo.c b/gibaseinfo.c index bfb774360..48af5c217 100644 --- a/gibaseinfo.c +++ b/gibaseinfo.c @@ -253,7 +253,10 @@ g_base_info_unref (GIBaseInfo *info) if (rinfo->repository) g_object_unref (rinfo->repository); - g_slice_free (GIRealInfo, rinfo); + if (rinfo->type == GI_INFO_TYPE_UNRESOLVED) + g_slice_free (GIUnresolvedInfo, rinfo); + else + g_slice_free (GIRealInfo, rinfo); } }