gnome-session r4883 - in branches/dbus_based: . gnome-session
- From: mccann svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-session r4883 - in branches/dbus_based: . gnome-session
- Date: Tue, 29 Jul 2008 22:02:49 +0000 (UTC)
Author: mccann
Date: Tue Jul 29 22:02:49 2008
New Revision: 4883
URL: http://svn.gnome.org/viewvc/gnome-session?rev=4883&view=rev
Log:
2008-07-29 William Jon McCann <jmccann redhat com>
* gnome-session/gsm-inhibit-dialog.c (on_store_inhibitor_added),
(on_store_inhibitor_removed), (setup_dialog):
* gnome-session/gsm-store.c (gsm_store_remove):
Fix double free.
Modified:
branches/dbus_based/ChangeLog
branches/dbus_based/gnome-session/gsm-inhibit-dialog.c
branches/dbus_based/gnome-session/gsm-store.c
Modified: branches/dbus_based/gnome-session/gsm-inhibit-dialog.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-inhibit-dialog.c (original)
+++ branches/dbus_based/gnome-session/gsm-inhibit-dialog.c Tue Jul 29 22:02:49 2008
@@ -634,6 +634,10 @@
g_debug ("GsmInhibitDialog: inhibitor added: %s", id);
+ if (dialog->priv->is_done) {
+ return;
+ }
+
inhibitor = gsm_store_lookup (store, id);
/* Add to model */
@@ -653,6 +657,10 @@
g_debug ("GsmInhibitDialog: inhibitor removed: %s", id);
+ if (dialog->priv->is_done) {
+ return;
+ }
+
/* Remove from model */
if (find_inhibitor (dialog, id, &iter)) {
gtk_list_store_remove (dialog->priv->list_store, &iter);
@@ -660,8 +668,7 @@
}
/* if there are no inhibitors left then trigger response */
- if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dialog->priv->list_store), &iter)
- && ! dialog->priv->is_done) {
+ if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dialog->priv->list_store), &iter)) {
gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
}
}
@@ -845,7 +852,7 @@
GDK_TYPE_PIXBUF,
G_TYPE_STRING,
G_TYPE_STRING,
- G_TYPE_UINT);
+ G_TYPE_STRING);
treeview = glade_xml_get_widget (dialog->priv->xml, "inhibitors-treeview");
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE);
Modified: branches/dbus_based/gnome-session/gsm-store.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-store.c (original)
+++ branches/dbus_based/gnome-session/gsm-store.c Tue Jul 29 22:02:49 2008
@@ -82,6 +82,7 @@
{
GObject *found;
gboolean removed;
+ char *id_copy;
g_return_val_if_fail (store != NULL, FALSE);
@@ -90,14 +91,17 @@
return FALSE;
}
+ id_copy = g_strdup (id);
+
g_object_ref (found);
- removed = g_hash_table_remove (store->priv->objects, id);
+ removed = g_hash_table_remove (store->priv->objects, id_copy);
g_assert (removed);
- g_signal_emit (store, signals [REMOVED], 0, id);
+ g_signal_emit (store, signals [REMOVED], 0, id_copy);
g_object_unref (found);
+ g_free (id_copy);
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]