]> code.delx.au - gnu-emacs/commitdiff
(mirror_line_dance): Avoid crash if W2 is null.
authorRichard M. Stallman <rms@gnu.org>
Sat, 9 Apr 2005 23:51:18 +0000 (23:51 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 9 Apr 2005 23:51:18 +0000 (23:51 +0000)
src/dispnew.c

index 5ffd1a2ce58e39f7b92fdf8c1834a7eb226037cb..4f29abdb3894768c944aafcaa00d17338eeb45be 100644 (file)
@@ -3165,14 +3165,20 @@ mirror_line_dance (w, unchanged_at_top, nlines, copy_from, retained_p)
                  int m2_from;
 
                  w2 = frame_row_to_window (root, frame_from);
-                 m2 = w2->current_matrix;
-                 m2_from = frame_from - m2->matrix_y;
-                 copy_row_except_pointers (m->rows + window_to,
-                                           m2->rows + m2_from);
-
-                 /* If frame line is empty, window line is empty, too.  */
-                 if (!retained_p[copy_from[i]])
-                   m->rows[window_to].enabled_p = 0;
+                 /* ttn@surf.glug.org: when enabling menu bar using `emacs
+                    -nw', FROM_FRAME sometimes has no associated window.
+                    This check avoids a segfault if W2 is null.  */
+                 if (w2)
+                   {
+                     m2 = w2->current_matrix;
+                     m2_from = frame_from - m2->matrix_y;
+                     copy_row_except_pointers (m->rows + window_to,
+                                               m2->rows + m2_from);
+
+                     /* If frame line is empty, window line is empty, too.  */
+                     if (!retained_p[copy_from[i]])
+                       m->rows[window_to].enabled_p = 0;
+                   }
                  sync_p = 1;
                }
              else if (from_inside_window_p)