Close socket on dispose
authorSamuel Cormier-Iijima <sciyoshi@gmail.com>
Thu, 28 Feb 2008 21:27:26 +0000 (16:27 -0500)
committerSamuel Cormier-Iijima <sciyoshi@gmail.com>
Thu, 28 Feb 2008 21:27:26 +0000 (16:27 -0500)
gnio/gsocket.c
test/test-client.c

index 1be3ad9..9d50665 100644 (file)
@@ -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);
index 8706e92..838b7d0 100644 (file)
@@ -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);