Another memory leak plugged
This commit is contained in:
parent
be6c204b17
commit
2462d86b28
@ -12,7 +12,7 @@
|
|||||||
Summary: GNOME session manager
|
Summary: GNOME session manager
|
||||||
Name: gnome-session
|
Name: gnome-session
|
||||||
Version: 2.23.92
|
Version: 2.23.92
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
URL: http://www.gnome.org
|
URL: http://www.gnome.org
|
||||||
Source0: http://download.gnome.org/sources/gnome-session/2.23/%{name}-%{version}.tar.bz2
|
Source0: http://download.gnome.org/sources/gnome-session/2.23/%{name}-%{version}.tar.bz2
|
||||||
Source1: redhat-default-session
|
Source1: redhat-default-session
|
||||||
@ -71,6 +71,8 @@ Patch1: previous_id-leak.patch
|
|||||||
Patch2: inhibitor-leak.patch
|
Patch2: inhibitor-leak.patch
|
||||||
# http://bugzilla.gnome.org/show_bug.cgi?id=552302
|
# http://bugzilla.gnome.org/show_bug.cgi?id=552302
|
||||||
Patch3: empty-string-leak.patch
|
Patch3: empty-string-leak.patch
|
||||||
|
# http://bugzilla.gnome.org/show_bug.cgi?id=552255
|
||||||
|
Patch4: ice-leak.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
|
|
||||||
@ -83,6 +85,7 @@ GNOME components and handles logout and saving the session.
|
|||||||
%patch1 -p1 -b .previous_id-leak
|
%patch1 -p1 -b .previous_id-leak
|
||||||
%patch2 -p1 -b .inhibitor-leak
|
%patch2 -p1 -b .inhibitor-leak
|
||||||
%patch3 -p1 -b .empty-string-leak
|
%patch3 -p1 -b .empty-string-leak
|
||||||
|
%patch4 -p0 -b .ice-leak
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -181,6 +184,9 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Sep 15 2008 Matthias Clasen <mclasen@redhat.com> - 2.23.92-4
|
||||||
|
- Plug memory leaks
|
||||||
|
|
||||||
* Sun Sep 14 2008 Matthias Clasen <mclasen@redhat.com> - 2.23.92-3
|
* Sun Sep 14 2008 Matthias Clasen <mclasen@redhat.com> - 2.23.92-3
|
||||||
- Plug memory leaks
|
- Plug memory leaks
|
||||||
|
|
||||||
|
56
ice-leak.patch
Normal file
56
ice-leak.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user