From de1d976404aa1ace662a06f5a970f2e65a381463 Mon Sep 17 00:00:00 2001 From: Samuel Cormier-Iijima Date: Thu, 28 Feb 2008 16:27:26 -0500 Subject: [PATCH] Close socket on dispose --- gnio/gsocket.c | 12 ++++++++++-- test/test-client.c | 2 -- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gnio/gsocket.c b/gnio/gsocket.c index 1be3ad9..9d50665 100644 --- a/gnio/gsocket.c +++ b/gnio/gsocket.c @@ -126,7 +126,13 @@ g_socket_set_property (GObject *object, guint prop_id, const GValue *value, GPar static void g_socket_finalize (GObject *object) { - GSocket *socket G_GNUC_UNUSED = G_SOCKET (object); + GSocket *socket = G_SOCKET (object); + + if (socket->priv->local_address) + g_object_unref (socket->priv->local_address); + + if (socket->priv->remote_address) + g_object_unref (socket->priv->remote_address); if (G_OBJECT_CLASS (g_socket_parent_class)->finalize) (*G_OBJECT_CLASS (g_socket_parent_class)->finalize) (object); @@ -135,7 +141,9 @@ g_socket_finalize (GObject *object) static void g_socket_dispose (GObject *object) { - GSocket *socket G_GNUC_UNUSED = G_SOCKET (object);; + GSocket *socket = G_SOCKET (object); + + g_socket_close (socket); if (G_OBJECT_CLASS (g_socket_parent_class)->dispose) (*G_OBJECT_CLASS (g_socket_parent_class)->dispose) (object); diff --git a/test/test-client.c b/test/test-client.c index 8706e92..838b7d0 100644 --- a/test/test-client.c +++ b/test/test-client.c @@ -44,8 +44,6 @@ int main (int argc, char *argv[]) g_printf ("connected, local socket is %s:%d\n", g_inet_address_to_string (g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (address))), g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (address))); - g_socket_close (socket); - g_object_unref (G_OBJECT (socket)); // g_main_loop_run (loop); -- 2.20.1