Close socket on dispose
[cascardo/gnio.git] / gnio / gsocket.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);