diff --git a/debugger/src/tpage.c b/debugger/src/tpage.c index e810a2473..802f4609c 100644 --- a/debugger/src/tpage.c +++ b/debugger/src/tpage.c @@ -139,22 +139,23 @@ void tpage_pack_widgets(gboolean tabbed) { /* root box */ GtkWidget *root = NULL, *oldroot = NULL; + GtkWidget **widget = NULL; GList *children = gtk_container_get_children(GTK_CONTAINER(tab_target)); if (children) { - int i; + int i = 0; oldroot = (GtkWidget*)children->data; - + /* unparent widgets */ - i = 0; - while (widgets[i]) + do { - g_object_ref(*widgets[i]); - gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(*widgets[i])), *widgets[i]); + widget = widgets[i]; + g_object_ref(widget); + gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(*widget)), *widget); i++; - } - + } while (widget); + g_list_free(children); } @@ -266,11 +267,12 @@ void tpage_pack_widgets(gboolean tabbed) if (oldroot) { int i = 0; - while (widgets[i]) + do { + widget = widgets[i]; g_object_unref(*widgets[i]); i++; - } + } while (widget); gtk_container_remove(GTK_CONTAINER(tab_target), oldroot); }