diff options
author | Eli Zaretskii <eliz@gnu.org> | 2011-11-30 07:25:09 -0500 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2011-11-30 07:25:09 -0500 |
commit | 91b6c9ac4a2c590bc83a310f132897e767b48412 (patch) | |
tree | 917e747d481650ce931993652ce6f8ef1cd4b782 | |
parent | bc21f06911a9b16831b7f4944fadc32c1494c9c0 (diff) | |
download | emacs-91b6c9ac4a2c590bc83a310f132897e767b48412.tar.gz |
Fix bug #10164 with assertion violations in linum-mode.
src/dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
attributes are tested _before_ calling verify_row_hash, to protect
against GCC re-ordering of the tests.
-rw-r--r-- | src/ChangeLog | 6 | ||||
-rw-r--r-- | src/dispnew.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 4735cfbfc96..be9257998ec 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2011-11-30 Eli Zaretskii <eliz@gnu.org> + + * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's + attributes are tested _before_ calling verify_row_hash, to protect + against GCC re-ordering of the tests. (Bug#10164) + 2011-11-29 Jan Djärv <jan.h.d@swipnet.se> * xterm.h (struct x_output): net_wm_state_hidden_seen is new. diff --git a/src/dispnew.c b/src/dispnew.c index c9e4ec5c20e..7e591aa8e8f 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -608,9 +608,10 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y row->glyphs[LAST_AREA] = row->glyphs[LEFT_MARGIN_AREA] + dim.width; } - xassert (!row->enabled_p - || row->mode_line_p - || verify_row_hash (row)); +#if XASSERTS + if (row->enabled_p && !row->mode_line_p) + verify_row_hash (row)); +#endif ++row; } } |