]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug #14062 with assertion violations on MS-Windows.
authorEli Zaretskii <eliz@gnu.org>
Sat, 4 May 2013 10:19:13 +0000 (13:19 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 4 May 2013 10:19:13 +0000 (13:19 +0300)
 src/dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
 w->contents is a buffer before computing everything else.  Use
 parentheses to disambiguate last part of the condition.
 src/w32fns.c (w32_wnd_proc): Remove temporary code used to trap
 assertion violations.

src/ChangeLog
src/dispextern.h
src/w32fns.c

index 4245a1f02564e7b300d247bd874f8da4916122ea..325babb4d8610ad814c6c8ddabf502c69486a406 100644 (file)
@@ -1,3 +1,12 @@
+2013-05-04  Eli Zaretskii  <eliz@gnu.org>
+
+       * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
+       w->contents is a buffer before computing everything else.  Use
+       parentheses to disambiguate last part of the condition.
+
+       * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
+       assertion violations.  (Bug#14062)
+
 2013-05-01  David Reitter  <david.reitter@gmail.com>
 
        * nsfns.m (ns_tooltip): Initialize.
index 5ce7b19f17382d00f726101fa0688a048fe4b206..50a32ffaf8f4607a30f45c82f3511739d0159528 100644 (file)
@@ -1423,13 +1423,14 @@ struct glyph_string
 /* Value is true if window W wants a header line.  */
 
 #define WINDOW_WANTS_HEADER_LINE_P(W)                                  \
-  (!MINI_WINDOW_P ((W))                                                        \
-   && !(W)->pseudo_window_p                                            \
-   && FRAME_WANTS_MODELINE_P (XFRAME (WINDOW_FRAME ((W))))             \
-   && BUFFERP ((W)->contents)                                          \
-   && !NILP (BVAR (XBUFFER ((W)->contents), header_line_format))       \
-   && WINDOW_TOTAL_LINES (W) > 1                                       \
-   + !NILP (BVAR (XBUFFER ((W)->contents), mode_line_format)))
+  (BUFFERP ((W)->contents)                                             \
+   ? (!MINI_WINDOW_P ((W))                                             \
+      && !(W)->pseudo_window_p                                         \
+      && FRAME_WANTS_MODELINE_P (XFRAME (WINDOW_FRAME ((W))))          \
+      && !NILP (BVAR (XBUFFER ((W)->contents), header_line_format))    \
+      && WINDOW_TOTAL_LINES (W) >                                      \
+          (1 + !NILP (BVAR (XBUFFER ((W)->contents), mode_line_format)))) \
+   : 0)
 
 /* Return proper value to be used as baseline offset of font that has
    ASCENT and DESCENT to draw characters by the font at the vertical
index 0785e685e6a08931ad6964adee67162d57d9d560..66581341478b5fe1b114b6a2137ba107fa06cdb3 100644 (file)
@@ -3183,28 +3183,8 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
          form.ptCurrentPos.y = w32_system_caret_y;
 
          form.rcArea.left = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, 0);
-
-#ifdef ENABLE_CHECKING
-         /* Temporary code to catch crashes in computing form.rcArea.top.  */
-         eassert (FRAMEP (w->frame));
-         eassert (BUFFERP (w->contents));
-         {
-           int wmbp = WINDOW_MENU_BAR_P (w);
-           int wtbp = WINDOW_TOOL_BAR_P (w);
-           struct frame *wf = WINDOW_XFRAME (w);
-           int fibw = FRAME_INTERNAL_BORDER_WIDTH (wf);
-           int wtel = WINDOW_TOP_EDGE_LINE (w);
-           int wflh = FRAME_LINE_HEIGHT (wf);
-           int wwhlp= WINDOW_WANTS_HEADER_LINE_P (w);
-           int chlh = CURRENT_HEADER_LINE_HEIGHT (w);
-           int whlh = (wwhlp ? chlh : 0);
-
-           form.rcArea.top = ((wmbp || wtbp) ? 0 : fibw) + wtel * wflh + whlh;
-         }
-#else
          form.rcArea.top = (WINDOW_TOP_EDGE_Y (w)
                             + WINDOW_HEADER_LINE_HEIGHT (w));
-#endif
          form.rcArea.right = (WINDOW_BOX_RIGHT_EDGE_X (w)
                               - WINDOW_RIGHT_MARGIN_WIDTH (w)
                               - WINDOW_RIGHT_FRINGE_WIDTH (w));