Reported by: Ian Eure <ian <at> digg.com>
Date: Mon, 29 Jun 2009 18:00:04 UTC
Severity: normal
Done: Adrian Robert <adrian.b.robert <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (Emacs bug Tracking System) To: Adrian Robert <adrian.b.robert <at> gmail.com> Subject: bug#3714: marked as done (23.1.50; [NS/Cocoa] Crash when hovering mode-line-inactive face) Date: Thu, 23 Jul 2009 13:35:04 +0000
[Message part 1 (text/plain, inline)]
Your message dated Thu, 23 Jul 2009 09:22:53 -0400 with message-id <CBCB1173-4A00-44EF-982E-6AF889E5ED38 <at> gmail.com> and subject line Re: 23.1.50; [NS/Cocoa] Crash when hovering mode-line-inactive face has caused the Emacs bug report #3714, regarding 23.1.50; [NS/Cocoa] Crash when hovering mode-line-inactive face to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact help-debbugs <at> gnu.org immediately.) -- 3714: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3714 Emacs Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ian Eure <ian <at> digg.com> To: emacs-pretest-bug <at> gnu.org Subject: 23.1.50; [NS/Cocoa] Crash when hovering mode-line-inactive face Date: Mon, 29 Jun 2009 10:56:17 -0700Emacs crashes when the mouse hovers the `mode-line-inactive' face in list-faces-display. Steps to reproduce: 1. Run /Application/Emacs.app/Contents/MacOS/Emacs -Q 2. M-x list-faces-display RET 3. Scroll down until mode-line-inactive is visible. 4. Hover the sample text on the right with the mouse pointer. 5. Emacs crashes. The problem seems to be that the ns_lookup_indexed_color call in nsterm.m:2725 returns a bad pointer. Backtrace: Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0xc0000003 0x94f8f684 in objc_msgSend () (gdb) bt full #0 0x94f8f684 in objc_msgSend () No symbol table info available. #1 0x001ef5b5 in ns_draw_box (r={origin = {x = 264, y = 336}, size = {width = 308, height = 15}}, thickness=0, col=0xc0000003, left_p=1 '\001', right_p=1 '\001') at nsterm.m:2571 s = { origin = { x = 264, y = 336 }, size = { width = 308, height = 15 } } #2 0x001efe13 in ns_dumpglyphs_box_or_relief (s=0xbfffd950) at nsterm.m:2724 right_x = 571 last_x = 572 left_p = 1 '\001' right_p = 1 '\001' last_glyph = (struct glyph *) 0x21a47e0 r = { origin = { x = 264, y = 336 }, size = { width = 308, height = 15 } } thickness = 0 face = (struct face *) 0x1684b80 #3 0x001f135e in ns_draw_glyph_string (s=0xbfffd950) at nsterm.m:3027 r = {{ origin = { x = 12, y = 336 }, size = { width = 560, height = 15 } }, { origin = { x = 1.2879323e-38, y = 0 }, size = { width = -1.99880123, height = 0 } }} n = 1 box_drawn_p = 0 '\0' #4 0x0004e06c in draw_glyphs (w=0x162c1d0, x=573, row=0x212afc8, area=TEXT_AREA, start=36, end=80, hl=DRAW_MOUSE_FACE, overlaps=0) at xdisp.c:20451 head = (struct glyph_string *) 0xbfffd950 tail = (struct glyph_string *) 0xbfffd950 s = (struct glyph_string *) 0xbfffd950 clip_head = (struct glyph_string *) 0x0 clip_tail = (struct glyph_string *) 0x0 i = 80 j = 204 x_reached = 573 last_x = 572 area_left = 12 f = (struct frame *) 0x8c3e50 #5 0x00054ea7 in show_mouse_face (dpyinfo=0x837450, draw=DRAW_MOUSE_FACE) at xdisp.c:22746 start_hpos = 36 end_hpos = 80 start_x = 252 phys_cursor_on_p = 1 row = (struct glyph_row *) 0x212afc8 first = (struct glyph_row *) 0x212afc8 last = (struct glyph_row *) 0x212afc8 w = (struct window *) 0x162c1d0 f = (struct frame *) 0x8c3e50 #6 0x0005581a in mouse_face_from_buffer_pos (window=23249364, dpyinfo=0x837450, mouse_charpos=4047, start_charpos=4025, end_charpos=4078, before_string=25165833, after_string=25165833, display_string=25165833) at xdisp.c:23011 w = (struct window *) 0x162c1d0 first = (struct glyph_row *) 0x212ae00 row = (struct glyph_row *) 0x212afc8 glyph = (struct glyph *) 0x21a4800 end = (struct glyph *) 0x21a4800 ignore = 4048 x = 561 #7 0x00057ca9 in note_mouse_highlight (f=0x8c3e50, x=419, y=63) at xdisp.c:23855 before = 32200 after = 32624 before_string = 25165833 after_string = 25165833 buffer = 23528644 display_string = 25165833 hpos = 58 i = -1 dx = 2 overlay_vec = (Lisp_Object *) 0xbfffddb0 noverlays = 0 obuf = (struct buffer *) 0x601678 obegv = 1 same_region = 0 dy = 14 area = 1 position = 32376 vpos = 3 ozv = 5429 pos = 4047 glyph = (struct glyph *) 0x21a4540 object = 23528644 mouse_face = 25649105 overlay = 25165833 dpyinfo = (Display_Info *) 0x837450 part = ON_TEXT window = 23249364 w = (struct window *) 0x162c1d0 cursor = (Cursor) 0x0 pointer = 25165833 b = (struct buffer *) 0x16704c0 #8 0x001eca9d in note_mouse_movement (frame=0x8c3e50, x=421, y=350) at nsterm.m:1765 No locals. #9 0x001f76a4 in -[EmacsView mouseMoved:] (self=0x1605b00, _cmd=0x94faf684, e=0x16ce160) at nsterm.m:4942 dpyinfo = (struct ns_display_info *) 0x837450 frame = -1830347271 #10 0x92e71d6d in -[NSWindow sendEvent:] () No symbol table info available. #11 0x92e3e3c5 in -[NSApplication sendEvent:] () No symbol table info available. #12 0x001f4771 in -[EmacsApp sendEvent:] (self=0x81f980, _cmd=0x94f954b8, theEvent=0x16ce160) at nsterm.m:4098 type = 5 window = (NSWindow *) 0x161a7b0 objc_super = { self = 0x81f980, cls = 0xa0449ea0 } #13 0x92d9b62f in -[NSApplication run] () No symbol table info available. #14 0x001f1b60 in ns_read_socket (terminal=0x837a50, expected=1, hold_quit=0xbfffe56c) at nsterm.m:3229 ev = { kind = NO_EVENT, code = 0, part = scroll_bar_above_handle, modifiers = 0, x = 0, y = 0, timestamp = 0, padding = {0x0, 0x0}, frame_or_window = 0, arg = 0 } nevents = -1790782963 #15 0x000d3a30 in read_avail_input (expected=1) at keyboard.c:7093 nr = 50343304 hold_quit = { kind = NO_EVENT, code = 0, part = scroll_bar_above_handle, modifiers = 0, x = 0, y = 0, timestamp = 0, padding = {0x0, 0x0}, frame_or_window = 0, arg = 0 } next = (struct terminal *) 0x0 nread = 0 err = 0 t = (struct terminal *) 0x837a50 #16 0x000d387a in gobble_input (expected=1) at keyboard.c:7004 mask = 0 #17 0x001f1e25 in ns_select (nfds=1, readfds=0xbfffe878, writefds=0x0, exceptfds=0x0, timeout=0xbfffe7f0) at nsterm.m:3302 result = 0 time = 29.999998999999999 ev = (NSEvent *) 0xbfffe658 #18 0x001c57bc in wait_reading_process_output (time_limit=30, microsecs=0, read_kbd=-1, do_display=1, wait_for_cell=25165833, wait_proc=0x0, just_wait_proc=0) at process.c:4828 timeout_reduced_for_timers = 0 channel = 3 nfds = 204 Available = { fds_bits = {0 <repeats 32 times>} } Connecting = { fds_bits = {0 <repeats 32 times>} } check_connect = 0 check_delay = 0 no_avail = 0 xerrno = 0 proc = 0 timeout = { tv_sec = 29, tv_usec = 999999 } end_time = { tv_sec = 1246297824, tv_usec = 508699 } wait_channel = -1 got_some_input = 0 count = 2 #19 0x0000f606 in sit_for (timeout=240, reading=1, do_display=1) at dispnew.c:6644 sec = 30 usec = 0 #20 0x000cc34d in read_char (commandflag=1, nmaps=2, maps=0xbfffebd0, prev_event=25165833, used_mouse_menu=0xbfffed78, end_time=0x0) at keyboard.c:2950 tem0 = 25165833 timeout = 30 delay_level = 4 buffer_size = 1 c = 25165833 count = -1073747112 jmpcount = 2 local_getcjmp = {895, 114, 8099, 832972, 976980, -1073746448, 2, 8133797, -1073747064, -1073747504, 31, 658, 834847, 23, 31, 31, 1310720, 1900599} save_jump = {0 <repeats 18 times>} key_already_recorded = 0 tem = 25165833 save = 25165833 previous_echo_area_message = 25165833 also_record = 25165833 reread = 0 gcpro1 = { next = 0xbfffea68, var = 0x1da126, nvars = 8047189 } gcpro2 = { next = 0x18490fc, var = 0x1da134, nvars = 1398200 } polling_stopped_here = 0 orig_kboard = (struct kboard *) 0x837b20 #21 0x000d7e4a in read_key_sequence (keybuf=0xbfffefa4, bufsize=30, prompt=25165833, dont_downcase_last=0, can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:9460 interrupted_kboard = (KBOARD *) 0x837b20 interrupted_frame = (struct frame *) 0x8c3e50 key = 372375 used_mouse_menu = 0 echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 local_first_binding = 0 from_string = 25165833 count = 2 t = 0 echo_start = 0 keys_start = 0 nmaps = 2 nmaps_allocated = 2 defs = (Lisp_Object * volatile) 0xbfffebb0 submaps = (Lisp_Object * volatile) 0xbfffebd0 orig_local_map = 8111925 orig_keymap = 25165833 localized_local_map = 0 first_binding = 0 first_unbound = 31 mock_input = 0 fkey = { parent = 7488085, map = 7488085, start = 0, end = 0 } keytran = { parent = 4796285, map = 4796285, start = 0, end = 0 } indec = { parent = 7488141, map = 7488141, start = 0, end = 0 } shift_translated = 0 delayed_switch_frame = 25165833 original_uppercase = -1073746408 original_uppercase_position = -1 dummyflag = 0 starting_buffer = (struct buffer *) 0x601678 fake_prefixed_keys = 25165833 gcpro1 = { next = 0x1a90661, var = 0x1800009, nvars = 6299772 } #22 0x000c87a0 in command_loop_1 () at keyboard.c:1642 cmd = 27854433 lose = 6484 nonundocount = 0 keybuf = {25196513, 8109221, -1834555244, 4127024, -1754265160, -1880941672, -1880949728, -1073745796, 152, 0, -1797177049, 163, 1179650, 253952, -1880941408, 230, 149, 41910564, -1797141688, 164, 9, 0, -1073745904, -1073746208, 0, 524288, 25165833, 25598081, 2605860, 4860453} i = 2 prev_modiff = 10 prev_buffer = (struct buffer *) 0x601678 already_adjusted = 0 #23 0x00166b4c in internal_condition_case (bfun=0xc82f2 <command_loop_1>, handlers=25205425, hfun=0xc79fb <cmd_error>) at eval.c:1512 val = 4860453 c = { tag = 25165833, val = 25165833, next = 0xbffff16c, gcpro = 0x0, jmp = {-1073806465, 76, 8098, 1468971, 33629184, 1467413, 0, 0, -1073745624, -1073745808, 31, 658, 1469137, -1797193705, 31, 31, 0, 55}, backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 0, interrupt_input_blocked = 0, byte_stack = 0x0 } h = { handler = 25205425, var = 25165833, chosen_clause = -1881116971, tag = 0xbffff0a8, next = 0x0 } #24 0x000c7f22 in command_loop_2 () at keyboard.c:1359 val = -1073741821 #25 0x001664dd in internal_catch (tag=25201545, func=0xc7eed <command_loop_2>, arg=25165833) at eval.c:1248 c = { tag = 25201545, val = 25165833, next = 0x0, gcpro = 0x0, jmp = {895, 0, 8098, 1467413, -1797177195, 0, 0, 0, -1073745432, -1073745584, 25296927, 662, 1467598, 2228247, 25165855, -1073807329, 25296896, 25296951}, backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 0, interrupt_input_blocked = 0, byte_stack = 0x0 } #26 0x000c7eab in command_loop () at keyboard.c:1338 No locals. #27 0x000c747f in recursive_edit_1 () at keyboard.c:953 count = 1 val = 1484089 #28 0x000c7688 in Frecursive_edit () at keyboard.c:1015 count = 0 buffer = 25165833 #29 0x000c598d in main (argc=2, argv=0xbffff47c) at emacs.c:1853 dummy = 0 stack_bottom_variable = 0 '\0' do_initial_setlocale = 1 skip_args = 0 rlim = { rlim_cur = 8388608, rlim_max = 67104768 } no_loadup = 0 junk = 0x0 dname_arg = 0x0 dname_arg2 = "|???\002\000\000\000X???r\030?? \000\020\000\000\000\000\000\000\002\000\000\000|???????\030???", '\0' <repeats 39 times> (gdb) In GNU Emacs 23.1.50.1 (i386-apple-darwin9.7.0, NS apple-appkit-949.46) of 2009-06-29 on neutron.local Windowing system distributor `Apple', version 10.3.949 configured using `configure '--with-ns'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: nil value of $XMODIFIERS: nil locale-coding-system: nil default-enable-multibyte-characters: t Major mode: ERC Minor modes in effect: diff-auto-refine-mode: t erc-track-mode: t erc-track-minor-mode: t erc-spelling-mode: t flyspell-mode: t erc-ring-mode: t erc-pcomplete-mode: t erc-netsplit-mode: t erc-match-mode: t erc-button-mode: t erc-fill-mode: t erc-autojoin-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-readonly-mode: t erc-scrolltobottom-mode: t test-case-global-mode: t which-function-mode: t shell-dirtrack-mode: t ime-bindings: t show-paren-mode: t recentf-mode: t iswitchb-mode: t cua-mode: t auto-insert-mode: t tooltip-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t size-indication-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t abbrev-mode: t Recent input: M-x r e p <tab> o r <tab> <tab> b <tab> <return> Recent messages: Mark set [2 times] Quit [2 times] call-interactively: Command attempted to use minibuffer while in minibuffer Quit [2 times] Undo! Making completion list... Quit [2 times] Undo! Mark set Making completion list... [2 times]
[Message part 3 (message/rfc822, inline)]
From: Adrian Robert <adrian.b.robert <at> gmail.com> To: 3714-done <at> debbugs.gnu.org Subject: Re: 23.1.50; [NS/Cocoa] Crash when hovering mode-line-inactive face Date: Thu, 23 Jul 2009 09:22:53 -0400I've checked in a fix to the branch and trunk. The problem was face- >box_color was 0, and apparently the xassert not the case just above was not firing because asserts are ifdef'd out unless compiling with a special flag. Seems a bit counterproductive, but anyway I'll start working on replacing all xasserts in the NS code with explict if () abort(). A different question is why exactly this box_color IS set to zero in the first place. This will have to await later investigation.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.