summaryrefslogtreecommitdiffstats
path: root/src/ck-seat.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-03-13 11:41:31 -0400
committerWilliam Jon McCann <mccann@jhu.edu>2007-03-13 11:41:31 -0400
commit4a639d92a6f1a5dd8f59d57ade37d4cff420b66a (patch)
treecb6081df5fd92f3b3edd28d884e887fb4cc49424 /src/ck-seat.c
parent1e7af7e9c648fb461e0d36d037d2920519159525 (diff)
various leak fixes
Diffstat (limited to 'src/ck-seat.c')
-rw-r--r--src/ck-seat.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/ck-seat.c b/src/ck-seat.c
index c980ad5..0b8ef80 100644
--- a/src/ck-seat.c
+++ b/src/ck-seat.c
@@ -527,10 +527,12 @@ ck_seat_remove_session (CkSeat *seat,
CkSession *session,
GError **error)
{
- char *ssid;
+ char *ssid;
+ gboolean ret;
g_return_val_if_fail (CK_IS_SEAT (seat), FALSE);
+ ret = FALSE;
ssid = NULL;
ck_session_get_id (session, &ssid, NULL);
@@ -540,8 +542,7 @@ ck_seat_remove_session (CkSeat *seat,
CK_SEAT_ERROR,
CK_SEAT_ERROR_GENERAL,
_("Session is not attached to this seat"));
- g_free (ssid);
- return FALSE;
+ goto out;
}
g_signal_handlers_disconnect_by_func (session, session_activate, seat);
@@ -555,7 +556,11 @@ ck_seat_remove_session (CkSeat *seat,
/* try to change the active session */
maybe_update_active_session (seat);
- return TRUE;
+ ret = TRUE;
+ out:
+ g_free (ssid);
+
+ return ret;
}
gboolean
@@ -582,6 +587,8 @@ ck_seat_add_session (CkSeat *seat,
maybe_update_active_session (seat);
+ g_free (ssid);
+
return TRUE;
}