summaryrefslogtreecommitdiff
path: root/gio/gresource.c
diff options
context:
space:
mode:
authorChristian Persch <chpe@gnome.org>2012-02-05 16:08:10 +0100
committerChristian Persch <chpe@gnome.org>2012-02-05 19:57:09 +0100
commitfa370571690356bc1082b89ff5b8b8a74664d16f (patch)
treec404bf3b582d9381215f8e4e933e1cca253cd194 /gio/gresource.c
parent2f4b46e3783b04cddcb2622a57b2a8e692cff68a (diff)
downloadglib-fa370571690356bc1082b89ff5b8b8a74664d16f.tar.gz
resources: Plug a mem leak
==26427== 24 bytes in 1 blocks are definitely lost in loss record 608 of 965 ==26427== at 0x402AD89: malloc (vg_replace_malloc.c:236) ==26427== by 0x4084724: standard_malloc (gmem.c:85) ==26427== by 0x40847C7: g_malloc (gmem.c:159) ==26427== by 0x409B1E1: g_slice_alloc (gslice.c:1003) ==26427== by 0x40BC038: g_variant_get_child_value (gvariant-core.c:969) ==26427== by 0x40BA89F: g_variant_valist_get (gvariant.c:4482) ==26427== by 0x40BAC23: g_variant_get_va (gvariant.c:4681) ==26427== by 0x40BAB29: g_variant_get (gvariant.c:4633) ==26427== by 0x4228BA5: do_lookup (gresource.c:293) ==26427== by 0x4228F51: g_resource_get_info (gresource.c:493)
Diffstat (limited to 'gio/gresource.c')
-rw-r--r--gio/gresource.c35
1 files changed, 17 insertions, 18 deletions
diff --git a/gio/gresource.c b/gio/gresource.c
index f177a8535..ce4476fe7 100644
--- a/gio/gresource.c
+++ b/gio/gresource.c
@@ -295,24 +295,23 @@ static gboolean do_lookup (GResource *resource,
&_flags,
&array);
- if (!res)
- {
- if (size)
- *size = _size;
- if (flags)
- *flags = _flags;
- if (data)
- *data = g_variant_get_data (array);
- if (data_size)
- {
- /* Don't report trailing newline that non-compressed files has */
- if (_flags & G_RESOURCE_FLAGS_COMPRESSED)
- *data_size = g_variant_get_size (array);
- else
- *data_size = g_variant_get_size (array) - 1;
- }
- res = TRUE;
- }
+ if (size)
+ *size = _size;
+ if (flags)
+ *flags = _flags;
+ if (data)
+ *data = g_variant_get_data (array);
+ if (data_size)
+ {
+ /* Don't report trailing newline that non-compressed files has */
+ if (_flags & G_RESOURCE_FLAGS_COMPRESSED)
+ *data_size = g_variant_get_size (array);
+ else
+ *data_size = g_variant_get_size (array) - 1;
+ }
+ g_variant_unref (array);
+
+ res = TRUE;
}
g_free (free_path);