[gtk+] Fix another GtkFixed regression, in gtk_fixed_forall()
- From: matthiasc src gnome org
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Fix another GtkFixed regression, in gtk_fixed_forall()
- Date: Wed, 2 Feb 2011 05:40:34 +0000 (UTC)
commit 54c97f3ba2358c60fcc32404b67716e44384fb52
Author: Matthias Clasen <mclasen redhat com>
Date: Wed Feb 2 00:40:02 2011 -0500
Fix another GtkFixed regression, in gtk_fixed_forall()
b3f6f67c changed the loop from while() to for() in gtk_fixed_forall(),
but that's wrong since the callback can have side-effects on the list,
in case the current child gets removed. And that's the case when the
widget is destroyed.
Patch by Vincent Untz
https://bugzilla.gnome.org/show_bug.cgi?id=641196
gtk/gtkfixed.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkfixed.c b/gtk/gtkfixed.c
index fd92cd7..e453005 100644
--- a/gtk/gtkfixed.c
+++ b/gtk/gtkfixed.c
@@ -540,9 +540,11 @@ gtk_fixed_forall (GtkContainer *container,
GtkFixedChild *child;
GList *children;
- for (children = priv->children; children; children = children->next)
+ children = priv->children;
+ while (children)
{
child = children->data;
+ children = children->next;
(* callback) (child->widget, callback_data);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]