[glib] ginetaddressmask: plug leak



commit 00f43b22e5b5d9e4afe1eda69e348e3fdaa8c262
Author: Xan Lopez <xan igalia com>
Date:   Sun Jan 1 19:01:14 2012 +0100

    ginetaddressmask: plug leak
    
    ==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 |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/gio/ginetaddressmask.c b/gio/ginetaddressmask.c
index 5794a56..560f47c 100644
--- a/gio/ginetaddressmask.c
+++ b/gio/ginetaddressmask.c
@@ -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",



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]