bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#3714: marked as done (23.1.50; [NS/Cocoa] Crash when hovering mode-l


From: Emacs bug Tracking System
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

Your message dated Thu, 23 Jul 2009 09:22:53 -0400
with message-id <CBCB1173-4A00-44EF-982E-6AF889E5ED38@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 owner@emacsbugs.donarmstrong.com
immediately.)


-- 
3714: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=3714
Emacs Bug Tracking System
Contact owner@emacsbugs.donarmstrong.com with problems
--- Begin Message --- Subject: 23.1.50; [NS/Cocoa] Crash when hovering mode-line-inactive face Date: Mon, 29 Jun 2009 10:56:17 -0700 Emacs 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]


--- End Message ---
--- Begin Message --- Subject: Re: 23.1.50; [NS/Cocoa] Crash when hovering mode-line-inactive face Date: Thu, 23 Jul 2009 09:22:53 -0400 I'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.


--- End Message ---

reply via email to

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