From b43a41e77a780f1c4e613828efc7142a1bc123f2 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 4 Jan 2006 15:32:05 +0000 Subject: [PATCH] Don't return a list of NULLs. (#325723, Steve Chaplin) 2006-01-04 Matthias Clasen * gtk/gtkuimanager.c (gtk_ui_manager_get_toplevels): Don't return a list of NULLs. (#325723, Steve Chaplin) --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ gtk/gtkuimanager.c | 49 ++++++++++++++++++++++++---------------------- 3 files changed, 36 insertions(+), 23 deletions(-) diff --git a/ChangeLog b/ChangeLog index b0f05464cc..330802bbda 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-01-04 Matthias Clasen + + * gtk/gtkuimanager.c (gtk_ui_manager_get_toplevels): Don't return + a list of NULLs. (#325723, Steve Chaplin) + 2006-01-04 Rodrigo Moya * gtk/gtkbindings.c (binding_signal_new): guard against multiplying diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index b0f05464cc..330802bbda 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2006-01-04 Matthias Clasen + + * gtk/gtkuimanager.c (gtk_ui_manager_get_toplevels): Don't return + a list of NULLs. (#325723, Steve Chaplin) + 2006-01-04 Rodrigo Moya * gtk/gtkbindings.c (binding_signal_new): guard against multiplying diff --git a/gtk/gtkuimanager.c b/gtk/gtkuimanager.c index 4a7b1715d6..3c2732025e 100644 --- a/gtk/gtkuimanager.c +++ b/gtk/gtkuimanager.c @@ -755,30 +755,36 @@ gtk_ui_manager_get_widget (GtkUIManager *self, return GTK_UI_MANAGER_GET_CLASS (self)->get_widget (self, path); } +typedef struct { + GtkUIManagerItemType types; + GSList *list; +} ToplevelData; + static void collect_toplevels (GNode *node, gpointer user_data) { - struct { - GtkUIManagerItemType types; - GSList *list; - } *data = user_data; + ToplevelData *data = user_data; - switch (NODE_INFO (node)->type) { - case NODE_TYPE_MENUBAR: - if (data->types & GTK_UI_MANAGER_MENUBAR) - data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); - break; - case NODE_TYPE_TOOLBAR: - if (data->types & GTK_UI_MANAGER_TOOLBAR) - data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); - break; - case NODE_TYPE_POPUP: - if (data->types & GTK_UI_MANAGER_POPUP) - data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); - break; - default: ; - } + if (NODE_INFO (node)->proxy) + { + switch (NODE_INFO (node)->type) + { + case NODE_TYPE_MENUBAR: + if (data->types & GTK_UI_MANAGER_MENUBAR) + data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); + break; + case NODE_TYPE_TOOLBAR: + if (data->types & GTK_UI_MANAGER_TOOLBAR) + data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); + break; + case NODE_TYPE_POPUP: + if (data->types & GTK_UI_MANAGER_POPUP) + data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); + break; + default: ; + } + } } /** @@ -799,10 +805,7 @@ GSList * gtk_ui_manager_get_toplevels (GtkUIManager *self, GtkUIManagerItemType types) { - struct { - GtkUIManagerItemType types; - GSList *list; - } data; + ToplevelData data; g_return_val_if_fail (GTK_IS_UI_MANAGER (self), NULL); g_return_val_if_fail ((~(GTK_UI_MANAGER_MENUBAR |