]> git.eshelyaron.com Git - emacs.git/commitdiff
Prevent display corruption when display-line-numbers is set
authorEli Zaretskii <eliz@gnu.org>
Fri, 14 Jul 2017 07:53:36 +0000 (10:53 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 14 Jul 2017 07:53:36 +0000 (10:53 +0300)
* src/xdisp.c (try_window_reusing_current_matrix): If giving up
due to display-line-numbers, clear the window's desired glyph
matrix before returning, as the following call to try_window will
call display_line, which expects rows of the desired matrix
cleared.  (Bug#27668)

src/xdisp.c

index 6b0532d95f5aa2607980fe024be34634b056f476..85b9eae36d11e7289a4e149107f2d84c88aa16ea 100644 (file)
@@ -17655,6 +17655,9 @@ try_window_reusing_current_matrix (struct window *w)
   if (w->vscroll || MATRIX_ROW_PARTIALLY_VISIBLE_P (w, start_row))
     return false;
 
+  /* Clear the desired matrix for the display below.  */
+  clear_glyph_matrix (w->desired_matrix);
+
   /* Give up if line numbers are being displayed, because reusing the
      current matrix might use the wrong width for line-number
      display.  */
@@ -17667,9 +17670,6 @@ try_window_reusing_current_matrix (struct window *w)
   start = start_row->minpos;
   start_vpos = MATRIX_ROW_VPOS (start_row, w->current_matrix);
 
-  /* Clear the desired matrix for the display below.  */
-  clear_glyph_matrix (w->desired_matrix);
-
   if (CHARPOS (new_start) <= CHARPOS (start))
     {
       /* Don't use this method if the display starts with an ellipsis