rpms/gnome-session/devel ice-leak.patch, NONE, 1.1 gnome-session.spec, 1.191, 1.192

Matthias Clasen mclasen at fedoraproject.org
Mon Sep 15 20:40:56 UTC 2008


Author: mclasen

Update of /cvs/extras/rpms/gnome-session/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16333

Modified Files:
	gnome-session.spec 
Added Files:
	ice-leak.patch 
Log Message:
Another memory leak plugged


ice-leak.patch:

--- NEW FILE ice-leak.patch ---
Index: gnome-session/gsm-xsmp-client.c
===================================================================
--- gnome-session/gsm-xsmp-client.c	(revision 5088)
+++ gnome-session/gsm-xsmp-client.c	(working copy)
@@ -78,25 +78,37 @@ client_iochannel_watch (GIOChannel    *c
                         GIOCondition   condition,
                         GsmXSMPClient *client)
 {
+        gboolean keep_going;
 
+        g_object_ref (client);
         switch (IceProcessMessages (client->priv->ice_connection, NULL, NULL)) {
         case IceProcessMessagesSuccess:
-                return TRUE;
+                keep_going = TRUE;
+                break;
 
         case IceProcessMessagesIOError:
                 g_debug ("GsmXSMPClient: IceProcessMessagesIOError on '%s'", client->priv->description);
                 gsm_client_set_status (GSM_CLIENT (client), GSM_CLIENT_FAILED);
+                /* Emitting "disconnected" will eventually cause
+                 * IceCloseConnection() to be called.
+                 */
                 gsm_client_disconnected (GSM_CLIENT (client));
-                return FALSE;
+                keep_going = FALSE;
+                break;
 
         case IceProcessMessagesConnectionClosed:
                 g_debug ("GsmXSMPClient: IceProcessMessagesConnectionClosed on '%s'",
                          client->priv->description);
-                return FALSE;
+                client->priv->ice_connection = NULL;
+                keep_going = FALSE;
+                break;
 
         default:
                 g_assert_not_reached ();
         }
+        g_object_unref (client);
+
+        return keep_going;
 }
 
 /* Called if too much time passes between the initial connection and
@@ -621,7 +633,9 @@ gsm_xsmp_client_disconnect (GsmXSMPClien
 
         if (client->priv->conn != NULL) {
                 SmsCleanUp (client->priv->conn);
-        } else {
+        }
+
+        if (client->priv->ice_connection != NULL) {
                 IceCloseConnection (client->priv->ice_connection);
         }
 


Index: gnome-session.spec
===================================================================
RCS file: /cvs/extras/rpms/gnome-session/devel/gnome-session.spec,v
retrieving revision 1.191
retrieving revision 1.192
diff -u -r1.191 -r1.192
--- gnome-session.spec	15 Sep 2008 01:50:49 -0000	1.191
+++ gnome-session.spec	15 Sep 2008 20:40:25 -0000	1.192
@@ -12,7 +12,7 @@
 Summary: GNOME session manager
 Name: gnome-session
 Version: 2.23.92
-Release: 3%{?dist}
+Release: 4%{?dist}
 URL: http://www.gnome.org
 Source0: http://download.gnome.org/sources/gnome-session/2.23/%{name}-%{version}.tar.bz2
 Source1: redhat-default-session
@@ -71,6 +71,8 @@
 Patch2: inhibitor-leak.patch
 # http://bugzilla.gnome.org/show_bug.cgi?id=552302
 Patch3: empty-string-leak.patch
+# http://bugzilla.gnome.org/show_bug.cgi?id=552255
+Patch4: ice-leak.patch
 
 %description
 
@@ -83,6 +85,7 @@
 %patch1 -p1 -b .previous_id-leak
 %patch2 -p1 -b .inhibitor-leak
 %patch3 -p1 -b .empty-string-leak
+%patch4 -p0 -b .ice-leak
 
 %build
 
@@ -181,6 +184,9 @@
 
 
 %changelog
+* Mon Sep 15 2008 Matthias Clasen  <mclasen at redhat.com> - 2.23.92-4
+- Plug memory leaks
+
 * Sun Sep 14 2008 Matthias Clasen  <mclasen at redhat.com> - 2.23.92-3
 - Plug memory leaks
 




More information about the fedora-extras-commits mailing list