emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r112447: Fix bug #14062 with assertio


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r112447: Fix bug #14062 with assertion violations on MS-Windows.
Date: Sat, 04 May 2013 13:19:13 +0300
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 112447
fixes bug: http://debbugs.gnu.org/14062
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sat 2013-05-04 13:19:13 +0300
message:
  Fix bug #14062 with assertion violations on MS-Windows.
  
   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.
modified:
  src/ChangeLog
  src/dispextern.h
  src/w32fns.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-05-01 07:02:19 +0000
+++ b/src/ChangeLog     2013-05-04 10:19:13 +0000
@@ -1,3 +1,12 @@
+2013-05-04  Eli Zaretskii  <address@hidden>
+
+       * 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  <address@hidden>
 
        * nsfns.m (ns_tooltip): Initialize.

=== modified file 'src/dispextern.h'
--- a/src/dispextern.h  2013-04-28 13:11:16 +0000
+++ b/src/dispextern.h  2013-05-04 10:19:13 +0000
@@ -1423,13 +1423,14 @@
 /* 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

=== modified file 'src/w32fns.c'
--- a/src/w32fns.c      2013-04-20 07:32:31 +0000
+++ b/src/w32fns.c      2013-05-04 10:19:13 +0000
@@ -3183,28 +3183,8 @@
          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));


reply via email to

[Prev in Thread] Current Thread [Next in Thread]