From: Christian Persch Date: Sun, 5 Feb 2012 15:08:10 +0000 (+0100) Subject: resources: Plug a mem leak X-Git-Tag: 2.31.18~102 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fa370571690356bc1082b89ff5b8b8a74664d16f;p=platform%2Fupstream%2Fglib.git 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) --- diff --git a/gio/gresource.c b/gio/gresource.c index f177a85..ce4476f 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);