(try_window_id) [!GLYPH_DEBUG]: Give up if
authorGerd Moellmann <gerd@gnu.org>
Tue, 18 Sep 2001 10:30:56 +0000 (10:30 +0000)
committerGerd Moellmann <gerd@gnu.org>
Tue, 18 Sep 2001 10:30:56 +0000 (10:30 +0000)
first_unchanged_at_end_row is in front of
last_unchanged_at_beg_row.  This code should be removed after the
release of 21.1.

src/ChangeLog
src/xdisp.c

index 7258c8c..f6891ec 100644 (file)
@@ -1,3 +1,10 @@
+2001-09-18  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
+       first_unchanged_at_end_row is in front of
+       last_unchanged_at_beg_row.  This code should be removed after the
+       release of 21.1.
+
 2001-09-17  Gerd Moellmann  <gerd@gnu.org>
 
        * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
index a3ac927..df8720e 100644 (file)
@@ -11491,8 +11491,23 @@ try_window_id (w)
   stop_pos = 0;
   if (first_unchanged_at_end_row)
     {
+#if GLYPH_DEBUG
       xassert (last_unchanged_at_beg_row == NULL
               || first_unchanged_at_end_row >= last_unchanged_at_beg_row);
+#else
+      /* This is for the release of 21.1 only, and should be removed
+        after the release.
+
+        This case means that unchanged information is probably bogus,
+        which leads to being unable to compute a correct
+        first_unchanged_at_end_row.  At least that was the case in
+        one debugging session.  I've fixed a bug that can lead to
+        wrong unchanged info, but didn't find a way to reproduce this
+        case.  2001-09-18 gerd.  */
+      if (last_unchanged_at_beg_row 
+         && first_unchanged_at_end_row < last_unchanged_at_beg_row)
+       GIVE_UP (20);
+#endif
       
       /* If this is a continuation line, move forward to the next one
         that isn't.  Changes in lines above affect this line.