Re: Crash in redisplay_internal - note_mode_line_or_margin_highlight
[EMAIL PROTECTED] (Kim F. Storm) writes: Chong Yidong [EMAIL PROTECTED] writes: Kim, could you study this patch and tell me what you think? Looks alright to me. I've checked it in. ___ emacs-pretest-bug mailing list emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug
Crash in redisplay_internal - note_mode_line_or_margin_highlight
This crash occurred with a (slightly modified) CVS version (2007-04-04), Carbon build. I was trying out tabbar.el (providing tabbar-mode) using PNG files for `tabbar-home-button-enabled-image' and the other tabbar buttons. I think I clicked on the mode (leftmost) button before this happened, but I'm not sure. Unfortunately I cannot reproduce this crash. I can provide the tabbar code used if necessary - but it's not a recipe for a crash. The stack trace is below. Date/Time: 2007-04-09 08:42:13.677 +0100 OS Version: 10.4.9 (Build 8P135) Report Version: 4 Command: Aquamacs Emacs Path:/Applications/Aquamacs Emacs.app/Contents/MacOS/Aquamacs Emacs Parent: WindowServer [67] Version: Aquamacs 1.0rc2, GNU Emacs 22 (1.2a) PID:882 Thread: 0 Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_INVALID_ADDRESS (0x0001) at 0x027f5fe0 Thread 0 Crashed: 0 org.gnu.AquamacsEmacs 0x000418d8 note_mode_line_or_margin_highlight + 1364 (xdisp.c:22582) 1 org.gnu.AquamacsEmacs 0x00041c58 note_mouse_highlight + 424 (xdisp.c:22731) 2 org.gnu.AquamacsEmacs 0x00140860 XTframe_up_to_date + 120 (macterm.c:2120) 3 org.gnu.AquamacsEmacs 0x0002d490 redisplay_internal + 4000 (xdisp.c:11372) 4 org.gnu.AquamacsEmacs 0x0002d8c8 redisplay_preserve_echo_area + 100 (xdisp.c:11576) 5 org.gnu.AquamacsEmacs 0x00081fc0 read_char + 1204 (keyboard.c: 2671) 6 org.gnu.AquamacsEmacs 0x0008b048 read_key_sequence + 1888 (keyboard.c:9154) 7 org.gnu.AquamacsEmacs 0x0007fb0c command_loop_1 + 1048 (keyboard.c:1625) 8 org.gnu.AquamacsEmacs 0x000eba1c internal_condition_case + 336 (eval.c:1482) 9 org.gnu.AquamacsEmacs 0x0007f308 command_loop_2 + 64 (keyboard.c:1332) 10 org.gnu.AquamacsEmacs 0x000eb3cc internal_catch + 264 (eval.c: 1222) 11 org.gnu.AquamacsEmacs 0x0007f2a4 command_loop + 216 (keyboard.c:1300) 12 org.gnu.AquamacsEmacs 0x0007ebf8 recursive_edit_1 + 172 (keyboard.c:1010) 13 org.gnu.AquamacsEmacs 0x0007ed94 Frecursive_edit + 224 (keyboard.c:1071) 14 org.gnu.AquamacsEmacs 0x000edec0 Ffuncall + 852 (eval.c:2995) 15 org.gnu.AquamacsEmacs 0x0011ba9c Fbyte_code + 2324 (bytecode.c:680) 16 org.gnu.AquamacsEmacs 0x000ed110 Feval + 1128 (eval.c:2336) 17 org.gnu.AquamacsEmacs 0x000e9de4 Fprogn + 60 (eval.c:447) 18 org.gnu.AquamacsEmacs 0x000503dc Fsave_window_excursion + 100 (window.c:6664) 19 org.gnu.AquamacsEmacs 0x0011c3dc Fbyte_code + 4692 (bytecode.c:841) 20 org.gnu.AquamacsEmacs 0x000ee4d8 funcall_lambda + 632 (eval.c: 3189) 21 org.gnu.AquamacsEmacs 0x000ee05c Ffuncall + 1264 (eval.c:3054) 22 org.gnu.AquamacsEmacs 0x000ed574 Fapply + 588 (eval.c:2486) 23 org.gnu.AquamacsEmacs 0x000ed9a0 apply1 + 104 (eval.c:2751) 24 org.gnu.AquamacsEmacs 0x000e9b28 call_debugger + 372 (eval.c: 304) 25 org.gnu.AquamacsEmacs 0x000ec54c find_handler_clause + 468 (eval.c:1920) 26 org.gnu.AquamacsEmacs 0x000ebf54 Fsignal + 532 (eval.c:1675) 27 org.gnu.AquamacsEmacs 0x000ec094 xsignal + 16 (eval.c:1723) 28 org.gnu.AquamacsEmacs 0x000ec0e8 xsignal2 + 0 (eval.c:1745) 29 org.gnu.AquamacsEmacs 0x000ec730 Fcommandp + 0 (eval.c:2024) 30 org.gnu.AquamacsEmacs 0x000f8a7c Frequire + 732 (fns.c:3602) 31 org.gnu.AquamacsEmacs 0x000ed110 Feval + 1128 (eval.c:2336) 32 org.gnu.AquamacsEmacs 0x000eded4 Ffuncall + 872 (eval.c:2998) 33 org.gnu.AquamacsEmacs 0x0011ba9c Fbyte_code + 2324 (bytecode.c:680) 34 org.gnu.AquamacsEmacs 0x000ee4d8 funcall_lambda + 632 (eval.c: 3189) 35 org.gnu.AquamacsEmacs 0x000ee05c Ffuncall + 1264 (eval.c:3054) 36 org.gnu.AquamacsEmacs 0x0011ba9c Fbyte_code + 2324 (bytecode.c:680) 37 org.gnu.AquamacsEmacs 0x000ee4d8 funcall_lambda + 632 (eval.c: 3189) 38 org.gnu.AquamacsEmacs 0x000ee05c Ffuncall + 1264 (eval.c:3054) 39 org.gnu.AquamacsEmacs 0x000e9448 Fcall_interactively + 4928 (callint.c:860) 40 org.gnu.AquamacsEmacs 0x0008ca0c Fcommand_execute + 644 (keyboard.c:10050) 41 org.gnu.AquamacsEmacs 0x00080838 command_loop_1 + 4420 (keyboard.c:1894) 42 org.gnu.AquamacsEmacs 0x000eba1c internal_condition_case + 336 (eval.c:1482) 43 org.gnu.AquamacsEmacs 0x0007f308 command_loop_2 + 64 (keyboard.c:1332) 44 org.gnu.AquamacsEmacs 0x000eb3cc internal_catch + 264 (eval.c: 1222) 45 org.gnu.AquamacsEmacs 0x0007f260 command_loop + 148 (keyboard.c:1315) 46 org.gnu.AquamacsEmacs 0x0007ebf8 recursive_edit_1 + 172 (keyboard.c:1010) 47 org.gnu.AquamacsEmacs 0x0007ed94 Frecursive_edit + 224 (keyboard.c:1071) 48 org.gnu.AquamacsEmacs 0x0007d864 main + 3232 (emacs.c:1765) 49 org.gnu.AquamacsEmacs 0xa060 _start + 392 (crt.c:267) 50 dyld0x8fe01048 _dyld_start + 60 Thread 1: 0 libSystem.B.dylib 0x9001fa0c select + 12 1 com.apple.CoreFoundation
Re: Crash in redisplay_internal - note_mode_line_or_margin_highlight
David Reitter [EMAIL PROTECTED] writes: This crash occurred with a (slightly modified) CVS version (2007-04-04), Carbon build. I was trying out tabbar.el (providing tabbar-mode) using PNG files for `tabbar-home-button-enabled-image' and the other tabbar buttons. I think I clicked on the mode (leftmost) button before this happened, but I'm not sure. I can't reproduce this patch, but I can see how it could conceivably happen. Kim, could you study this patch and tell me what you think? *** emacs/src/xdisp.c.~1.1145.~ 2007-04-09 11:36:15.0 -0400 --- emacs/src/xdisp.c 2007-04-09 12:23:04.0 -0400 *** *** 22437,22443 Lisp_Object mouse_face; int original_x_pixel = x; ! struct glyph * glyph = NULL; struct glyph_row *row; if (area == ON_MODE_LINE || area == ON_HEADER_LINE) --- 22437,22443 Lisp_Object mouse_face; int original_x_pixel = x; ! struct glyph * glyph = NULL, * row_start_glyph = NULL; struct glyph_row *row; if (area == ON_MODE_LINE || area == ON_HEADER_LINE) *** *** 22455,22461 /* Find glyph */ if (row-mode_line_p row-enabled_p) { ! glyph = row-glyphs[TEXT_AREA]; end = glyph + row-used[TEXT_AREA]; for (x0 = original_x_pixel; --- 22455,22461 /* Find glyph */ if (row-mode_line_p row-enabled_p) { ! glyph = row_start_glyph = row-glyphs[TEXT_AREA]; end = glyph + row-used[TEXT_AREA]; for (x0 = original_x_pixel; *** *** 22579,22590 is converted to a flatten by emacs lisp interpreter. The internal string is an element of the structures. The displayed string is the flatten string. */ ! for (tmp_glyph = glyph - 1, gpos = 0; ! tmp_glyph-charpos = XINT (b); ! tmp_glyph--, gpos++) { ! if (!EQ (tmp_glyph-object, glyph-object)) ! break; } /* Calculate the lenght(glyph sequence length: GSEQ_LENGTH) of --- 22579,22594 is converted to a flatten by emacs lisp interpreter. The internal string is an element of the structures. The displayed string is the flatten string. */ ! gpos = 0; ! if (glyph != row_start_glyph) { ! for (tmp_glyph = glyph - 1; ! tmp_glyph-charpos = XINT (b); ! tmp_glyph--, gpos++) ! { ! if (!EQ (tmp_glyph-object, glyph-object)) ! break; ! } } /* Calculate the lenght(glyph sequence length: GSEQ_LENGTH) of ___ emacs-pretest-bug mailing list emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug