]> Pileus Git - ~andy/gtk/commitdiff
add temporary code to dump btree contents on assertion failure described
authorHavoc Pennington <hp@redhat.com>
Mon, 22 Oct 2001 22:17:21 +0000 (22:17 +0000)
committerHavoc Pennington <hp@src.gnome.org>
Mon, 22 Oct 2001 22:17:21 +0000 (22:17 +0000)
2001-10-22  Havoc Pennington  <hp@redhat.com>

* gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
add temporary code to dump btree contents on assertion failure
described in #62656

* gtk/gtktextbtree.c (ensure_end_iter_segment): add some
assertions that we're getting the right end iter segment

* gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
verify that we aren't on the end iterator after moving
forward one segment - fixes return value in an obscure case.
Also, some trivial code cleanup/rearranging.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktextbtree.c
gtk/gtktextiter.c

index 13142024efa3d57db4a8a75f1f926262fe98dd88..01ee421a420c40079cffb2c42d67cd2996b73626 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2001-10-22  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       add temporary code to dump btree contents on assertion failure
+       described in #62656
+       
+       * gtk/gtktextbtree.c (ensure_end_iter_segment): add some
+       assertions that we're getting the right end iter segment
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       verify that we aren't on the end iterator after moving 
+       forward one segment - fixes return value in an obscure case. 
+       Also, some trivial code cleanup/rearranging.
+       
 2001-10-22  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtktextlayout.h: add a #error unless you define
index 13142024efa3d57db4a8a75f1f926262fe98dd88..01ee421a420c40079cffb2c42d67cd2996b73626 100644 (file)
@@ -1,3 +1,17 @@
+2001-10-22  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       add temporary code to dump btree contents on assertion failure
+       described in #62656
+       
+       * gtk/gtktextbtree.c (ensure_end_iter_segment): add some
+       assertions that we're getting the right end iter segment
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       verify that we aren't on the end iterator after moving 
+       forward one segment - fixes return value in an obscure case. 
+       Also, some trivial code cleanup/rearranging.
+       
 2001-10-22  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtktextlayout.h: add a #error unless you define
index 13142024efa3d57db4a8a75f1f926262fe98dd88..01ee421a420c40079cffb2c42d67cd2996b73626 100644 (file)
@@ -1,3 +1,17 @@
+2001-10-22  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       add temporary code to dump btree contents on assertion failure
+       described in #62656
+       
+       * gtk/gtktextbtree.c (ensure_end_iter_segment): add some
+       assertions that we're getting the right end iter segment
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       verify that we aren't on the end iterator after moving 
+       forward one segment - fixes return value in an obscure case. 
+       Also, some trivial code cleanup/rearranging.
+       
 2001-10-22  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtktextlayout.h: add a #error unless you define
index 13142024efa3d57db4a8a75f1f926262fe98dd88..01ee421a420c40079cffb2c42d67cd2996b73626 100644 (file)
@@ -1,3 +1,17 @@
+2001-10-22  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       add temporary code to dump btree contents on assertion failure
+       described in #62656
+       
+       * gtk/gtktextbtree.c (ensure_end_iter_segment): add some
+       assertions that we're getting the right end iter segment
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       verify that we aren't on the end iterator after moving 
+       forward one segment - fixes return value in an obscure case. 
+       Also, some trivial code cleanup/rearranging.
+       
 2001-10-22  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtktextlayout.h: add a #error unless you define
index 13142024efa3d57db4a8a75f1f926262fe98dd88..01ee421a420c40079cffb2c42d67cd2996b73626 100644 (file)
@@ -1,3 +1,17 @@
+2001-10-22  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       add temporary code to dump btree contents on assertion failure
+       described in #62656
+       
+       * gtk/gtktextbtree.c (ensure_end_iter_segment): add some
+       assertions that we're getting the right end iter segment
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       verify that we aren't on the end iterator after moving 
+       forward one segment - fixes return value in an obscure case. 
+       Also, some trivial code cleanup/rearranging.
+       
 2001-10-22  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtktextlayout.h: add a #error unless you define
index 13142024efa3d57db4a8a75f1f926262fe98dd88..01ee421a420c40079cffb2c42d67cd2996b73626 100644 (file)
@@ -1,3 +1,17 @@
+2001-10-22  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       add temporary code to dump btree contents on assertion failure
+       described in #62656
+       
+       * gtk/gtktextbtree.c (ensure_end_iter_segment): add some
+       assertions that we're getting the right end iter segment
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       verify that we aren't on the end iterator after moving 
+       forward one segment - fixes return value in an obscure case. 
+       Also, some trivial code cleanup/rearranging.
+       
 2001-10-22  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtktextlayout.h: add a #error unless you define
index 13142024efa3d57db4a8a75f1f926262fe98dd88..01ee421a420c40079cffb2c42d67cd2996b73626 100644 (file)
@@ -1,3 +1,17 @@
+2001-10-22  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       add temporary code to dump btree contents on assertion failure
+       described in #62656
+       
+       * gtk/gtktextbtree.c (ensure_end_iter_segment): add some
+       assertions that we're getting the right end iter segment
+
+       * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment):
+       verify that we aren't on the end iterator after moving 
+       forward one segment - fixes return value in an obscure case. 
+       Also, some trivial code cleanup/rearranging.
+       
 2001-10-22  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtktextlayout.h: add a #error unless you define
index a2a043be87750bc0fd9a3845edfd172c2e3e9478..2f03b58079189553ba51ab989e6c13a9c6a29791 100644 (file)
@@ -3234,6 +3234,9 @@ ensure_end_iter_segment (GtkTextBTree *tree)
       tree->end_iter_segment_char_offset = last_with_chars->char_count - 1;
       
       tree->end_iter_segment_stamp = tree->segments_changed_stamp;
+
+      g_assert (tree->end_iter_segment->type == &gtk_text_char_type);
+      g_assert (tree->end_iter_segment->body.chars[tree->end_iter_segment_byte_index] == '\n');
     }
 }
 
index 97fc4b4ad6a1e330922aa6574f400fc0262f9490..501b077fabf4b3c86284b0ce899f222e76b06619 100644 (file)
@@ -1976,7 +1976,7 @@ _gtk_text_iter_forward_indexable_segment (GtkTextIter *iter)
 
       check_invariants (iter);
 
-      return TRUE;
+      return !gtk_text_iter_is_end (iter);
     }
   else
     {
@@ -1995,21 +1995,20 @@ _gtk_text_iter_forward_indexable_segment (GtkTextIter *iter)
 
           check_invariants (iter);
 
-          if (gtk_text_iter_is_end (iter))
-            return FALSE;
-          else
-            return TRUE;
+          return !gtk_text_iter_is_end (iter);
         }
       else
         {
           /* End of buffer */
+          
+          check_invariants (iter);
 
           g_assert (!_gtk_text_line_is_last (real->line, real->tree));
           g_assert (_gtk_text_line_contains_end_iter (real->line, real->tree));
+          if (!gtk_text_iter_is_end (iter))
+            _gtk_text_btree_spew (_gtk_text_iter_get_btree (iter));              
           g_assert (gtk_text_iter_is_end (iter));
           
-          check_invariants (iter);
-
           return FALSE;
         }
     }