ginetaddressmask: plug leak
authorXan Lopez <xan@igalia.com>
Sun, 1 Jan 2012 18:01:14 +0000 (19:01 +0100)
committerXan Lopez <xan@igalia.com>
Sun, 1 Jan 2012 18:01:14 +0000 (19:01 +0100)
==24706== 52 bytes in 1 blocks are definitely lost in loss record 7,248 of 13,092
==24706==    at 0x4A074CD: malloc (vg_replace_malloc.c:236)
==24706==    by 0x70E9F5F: standard_malloc (gmem.c:85)
==24706==    by 0x70E9FE8: g_malloc (gmem.c:159)
==24706==    by 0x71018EC: g_slice_alloc (gslice.c:1003)
==24706==    by 0x710192B: g_slice_alloc0 (gslice.c:1029)
==24706==    by 0x7068526: g_type_create_instance (gtype.c:1872)
==24706==    by 0x705067B: g_object_constructor (gobject.c:1835)
==24706==    by 0x704FE47: g_object_newv (gobject.c:1699)
==24706==    by 0x7050612: g_object_new_valist (gobject.c:1816)
==24706==    by 0x704F894: g_object_new (gobject.c:1531)
==24706==    by 0x6F0F2F0: g_inet_address_new_from_bytes (ginetaddress.c:459)
==24706==    by 0x6F5D703: remove_network (gnetworkmonitornetlink.c:256)
==24706==    by 0x6F5DD80: read_netlink_messages (gnetworkmonitornetlink.c:386)
==24706==    by 0x6F2D5CA: socket_source_dispatch (gsocket.c:2505)
==24706==    by 0x70E1D45: g_main_dispatch (gmain.c:2513)
==24706==    by 0x70E2A06: g_main_context_dispatch (gmain.c:3050)
==24706==    by 0x70E2BE9: g_main_context_iterate (gmain.c:3121)
==24706==    by 0x70E2CAD: g_main_context_iteration (gmain.c:3182)
==24706==    by 0x6F60A05: g_application_run (gapplication.c:1599)
==24706==    by 0x42D011: main (ephy-main.c:472)

https://bugzilla.gnome.org/show_bug.cgi?id=667098

gio/ginetaddressmask.c

index 5794a56..560f47c 100644 (file)
@@ -124,6 +124,16 @@ g_inet_address_mask_get_property (GObject    *object,
 }
 
 static void
+g_inet_address_mask_dispose (GObject *object)
+{
+  GInetAddressMask *mask = G_INET_ADDRESS_MASK (object);
+
+  g_clear_object (&mask->priv->addr);
+
+  G_OBJECT_CLASS (g_inet_address_mask_parent_class)->dispose (object);
+}
+
+static void
 g_inet_address_mask_class_init (GInetAddressMaskClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
@@ -132,6 +142,7 @@ g_inet_address_mask_class_init (GInetAddressMaskClass *klass)
 
   gobject_class->set_property = g_inet_address_mask_set_property;
   gobject_class->get_property = g_inet_address_mask_get_property;
+  gobject_class->dispose = g_inet_address_mask_dispose;
 
   g_object_class_install_property (gobject_class, PROP_FAMILY,
                                    g_param_spec_enum ("family",