]> Pileus Git - ~andy/gtk/commitdiff
Ref/sink the buttons. Also, free them correctly upon failure. Based on a
authorFederico Mena Quintero <federico@ximian.com>
Tue, 6 Apr 2004 01:23:26 +0000 (01:23 +0000)
committerFederico Mena Quintero <federico@src.gnome.org>
Tue, 6 Apr 2004 01:23:26 +0000 (01:23 +0000)
2004-04-05  Federico Mena Quintero  <federico@ximian.com>

* gtk/gtkpathbar.c (_gtk_path_bar_set_path): Ref/sink the
buttons.  Also, free them correctly upon failure.  Based on a
patch by Morten Welinder, fixes #137956.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkpathbar.c

index c5eeb002806d827d1ffb45add45ce551500fe81d..74d96dcb43a6be4e19d81bb10ac3fe6f2fe94005 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-04-05  Federico Mena Quintero  <federico@ximian.com>
+
+       * gtk/gtkpathbar.c (_gtk_path_bar_set_path): Ref/sink the
+       buttons.  Also, free them correctly upon failure.  Based on a
+       patch by Morten Welinder, fixes #137956.
+
 2004-04-05  Anders Carlsson  <andersca@gnome.org>
 
        * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.
index c5eeb002806d827d1ffb45add45ce551500fe81d..74d96dcb43a6be4e19d81bb10ac3fe6f2fe94005 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-05  Federico Mena Quintero  <federico@ximian.com>
+
+       * gtk/gtkpathbar.c (_gtk_path_bar_set_path): Ref/sink the
+       buttons.  Also, free them correctly upon failure.  Based on a
+       patch by Morten Welinder, fixes #137956.
+
 2004-04-05  Anders Carlsson  <andersca@gnome.org>
 
        * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.
index c5eeb002806d827d1ffb45add45ce551500fe81d..74d96dcb43a6be4e19d81bb10ac3fe6f2fe94005 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-05  Federico Mena Quintero  <federico@ximian.com>
+
+       * gtk/gtkpathbar.c (_gtk_path_bar_set_path): Ref/sink the
+       buttons.  Also, free them correctly upon failure.  Based on a
+       patch by Morten Welinder, fixes #137956.
+
 2004-04-05  Anders Carlsson  <andersca@gnome.org>
 
        * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.
index c5eeb002806d827d1ffb45add45ce551500fe81d..74d96dcb43a6be4e19d81bb10ac3fe6f2fe94005 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-05  Federico Mena Quintero  <federico@ximian.com>
+
+       * gtk/gtkpathbar.c (_gtk_path_bar_set_path): Ref/sink the
+       buttons.  Also, free them correctly upon failure.  Based on a
+       patch by Morten Welinder, fixes #137956.
+
 2004-04-05  Anders Carlsson  <andersca@gnome.org>
 
        * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.
index c5eeb002806d827d1ffb45add45ce551500fe81d..74d96dcb43a6be4e19d81bb10ac3fe6f2fe94005 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-05  Federico Mena Quintero  <federico@ximian.com>
+
+       * gtk/gtkpathbar.c (_gtk_path_bar_set_path): Ref/sink the
+       buttons.  Also, free them correctly upon failure.  Based on a
+       patch by Morten Welinder, fixes #137956.
+
 2004-04-05  Anders Carlsson  <andersca@gnome.org>
 
        * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.
index 4a04dbacda821e0514249c2f640293a640906aa3..c2139c13c1244f7aff62d63c7696070087a14127 100644 (file)
@@ -1058,6 +1058,9 @@ _gtk_path_bar_set_path (GtkPathBar         *path_bar,
       gtk_file_info_free (file_info);
       gtk_file_path_free (path);
 
+      g_object_ref (button_data->button);
+      gtk_object_sink (GTK_OBJECT (button_data->button));
+
       new_buttons = g_list_prepend (new_buttons, button_data);
 
       if (button_data->type != NORMAL_BUTTON)
@@ -1089,9 +1092,12 @@ _gtk_path_bar_set_path (GtkPathBar         *path_bar,
 
       for (l = new_buttons; l; l = l->next)
        {
-         GtkWidget *button = BUTTON_DATA (l->data)->button;
-         gtk_widget_destroy (button);
-         gtk_widget_unref (button);
+         ButtonData *button_data;
+
+         button_data = BUTTON_DATA (l->data);
+
+         gtk_widget_unref (button_data->button);
+         button_data_free (button_data);
        }
 
       g_list_free (new_buttons);