Ref/sink the buttons. Also, free them correctly upon failure. Based on a

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.
This commit is contained in:
Federico Mena Quintero 2004-04-06 01:23:26 +00:00 committed by Federico Mena Quintero
parent 3bfc888d4a
commit 5af2f825c3
6 changed files with 39 additions and 3 deletions

View 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> 2004-04-05 Anders Carlsson <andersca@gnome.org>
* gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly. * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.

View 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> 2004-04-05 Anders Carlsson <andersca@gnome.org>
* gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly. * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.

View 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> 2004-04-05 Anders Carlsson <andersca@gnome.org>
* gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly. * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.

View 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> 2004-04-05 Anders Carlsson <andersca@gnome.org>
* gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly. * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.

View 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> 2004-04-05 Anders Carlsson <andersca@gnome.org>
* gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly. * gdk/gdk.c (gdk_arg_context_parse): Handle '--' correctly.

View File

@ -1058,6 +1058,9 @@ _gtk_path_bar_set_path (GtkPathBar *path_bar,
gtk_file_info_free (file_info); gtk_file_info_free (file_info);
gtk_file_path_free (path); 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); new_buttons = g_list_prepend (new_buttons, button_data);
if (button_data->type != NORMAL_BUTTON) 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) for (l = new_buttons; l; l = l->next)
{ {
GtkWidget *button = BUTTON_DATA (l->data)->button; ButtonData *button_data;
gtk_widget_destroy (button);
gtk_widget_unref (button); button_data = BUTTON_DATA (l->data);
gtk_widget_unref (button_data->button);
button_data_free (button_data);
} }
g_list_free (new_buttons); g_list_free (new_buttons);