summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@src.gnome.org>2004-03-15 09:35:19 +0000
committerShaun McCance <shaunm@src.gnome.org>2004-03-15 09:35:19 +0000
commitaed57ff0295befbbb2228a8dbccb4f9fc1743c5c (patch)
tree258bdfa9a3e1070e566fe953ce63f401f6237633
parent614b4637ca5c1de4f89152d98efb814e8d36c9a7 (diff)
downloadyelp-aed57ff0295befbbb2228a8dbccb4f9fc1743c5c.tar.gz
- Fix for #137216, infinite loop in tree traversal.
* src/yelp-window.c: - Fix for #137216, infinite loop in tree traversal.
-rw-r--r--ChangeLog5
-rw-r--r--src/yelp-window.c15
2 files changed, 13 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 2279b08b..c603c3f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-03-15 Shaun McCance <shaunm@gnome.org>
+
+ * src/yelp-window.c:
+ - Fix for #137216, infinite loop in tree traversal.
+
2004-03-10 Alexander Winston <alexander.winston@comcast.net>
* configure.in: Added en_CA to ALL_LINGUAS.
diff --git a/src/yelp-window.c b/src/yelp-window.c
index 6ee2f679..3f6f835a 100644
--- a/src/yelp-window.c
+++ b/src/yelp-window.c
@@ -1729,16 +1729,17 @@ tree_model_iter_following (GtkTreeModel *model,
if (valid) {
gtk_tree_iter_free (old_iter);
return TRUE;
- } else {
- *iter = *old_iter;
+ }
- valid = gtk_tree_model_iter_parent (model, iter, old_iter);
+ valid = gtk_tree_model_iter_parent (model, iter, old_iter);
- if (!valid) {
- gtk_tree_iter_free (old_iter);
- return FALSE;
- }
+ if (!valid) {
+ gtk_tree_iter_free (old_iter);
+ return FALSE;
}
+
+ *old_iter = *iter;
+
} while (TRUE);
g_assert_not_reached ();