]> git.eshelyaron.com Git - emacs.git/commitdiff
More debugging code to investigate bug #14062.
authorEli Zaretskii <eliz@gnu.org>
Mon, 15 Apr 2013 07:27:56 +0000 (10:27 +0300)
committerEli Zaretskii <eliz@gnu.org>
Mon, 15 Apr 2013 07:27:56 +0000 (10:27 +0300)
 src/w32fns.c (w32_wnd_proc): Add more assertions to investigate
 bug#14062.
 src/frame.h (WINDOW_FRAME): Protect macro and its argument with
 parentheses.
 src/dispextern.h (CURRENT_MODE_LINE_HEIGHT)
 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
 parentheses where appropriate.

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

index 5c0e26760c7e67e2a68694616d0c8ae1ebd983bf..1d113260478e238c83f308a90382c9f363480e29 100644 (file)
@@ -1,3 +1,16 @@
+2013-04-15  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32fns.c (w32_wnd_proc): Add more assertions to investigate
+       bug#14205.
+
+       * frame.h (WINDOW_FRAME): Protect macro and its argument with
+       parentheses.
+
+       * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
+       (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
+       (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
+       parentheses where appropriate.
+
 2013-04-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        * keyboard.c (timer_start_idle): Remove no-longer-used local.
index cb2e944d1cc2eef57d95a104e4cc405182fa220e..9dc3a57c284227b6bb73aec7f0bc9c6f4b19dfab 100644 (file)
@@ -1384,7 +1384,7 @@ struct glyph_string
       ? current_mode_line_height                               \
       : (MATRIX_MODE_LINE_HEIGHT ((W)->current_matrix)         \
         ? MATRIX_MODE_LINE_HEIGHT ((W)->current_matrix)        \
-        : estimate_mode_line_height (XFRAME (W->frame),        \
+        : estimate_mode_line_height (XFRAME ((W)->frame),      \
                                      CURRENT_MODE_LINE_FACE_ID (W))))
 
 /* Return the current height of the header line of window W.  If not
@@ -1397,7 +1397,7 @@ struct glyph_string
        ? current_header_line_height                            \
        : (MATRIX_HEADER_LINE_HEIGHT ((W)->current_matrix)      \
          ? MATRIX_HEADER_LINE_HEIGHT ((W)->current_matrix)     \
-         : estimate_mode_line_height (XFRAME (W->frame),\
+         : estimate_mode_line_height (XFRAME ((W)->frame),     \
                                       HEADER_LINE_FACE_ID)))
 
 /* Return the height of the desired mode line of window W.  */
@@ -1416,20 +1416,20 @@ struct glyph_string
   (!MINI_WINDOW_P ((W))                                                \
    && !(W)->pseudo_window_p                                    \
    && FRAME_WANTS_MODELINE_P (XFRAME (WINDOW_FRAME ((W))))     \
-   && BUFFERP (W->contents)                                    \
-   && !NILP (BVAR (XBUFFER (W->contents), mode_line_format))   \
+   && BUFFERP ((W)->contents)                                  \
+   && !NILP (BVAR (XBUFFER ((W)->contents), mode_line_format)) \
    && WINDOW_TOTAL_LINES (W) > 1)
 
 /* 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)))
+#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)))
 
 /* 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 b69f19b7ef8e9f61abfedaf60fc2393a976dcbb7..fc0a1dc828bd29657f8b1d06dec7c62820960686 100644 (file)
@@ -598,7 +598,7 @@ typedef struct frame *FRAME_PTR;
 #define XSETFRAME(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_FRAME))
 
 /* Given a window, return its frame as a Lisp_Object.  */
-#define WINDOW_FRAME(w) w->frame
+#define WINDOW_FRAME(w) ((w)->frame)
 
 /* Test a frame for particular kinds of display methods.  */
 #define FRAME_INITIAL_P(f) ((f)->output_method == output_initial)
index 5d3a78f8b9531d6b6c8416956eed2f41767bfba0..de52ff144e3ed6c0030d5d43fc6eb882aed3f8a0 100644 (file)
@@ -3123,6 +3123,8 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
 #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);