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

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

Re: Multiple runs of menu-bar-update-hook


From: Richard Stallman
Subject: Re: Multiple runs of menu-bar-update-hook
Date: Fri, 11 Aug 2006 15:24:05 -0400

    Breakpoint 5, update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0)
    at xdisp.c:9195
    (gdb) where
    #0  update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at
    xdisp.c:9195
    #1  0x000806ac in prepare_menu_bars () at xdisp.c:9073
    #2  0x00085810 in redisplay_internal (preserve_echo_area=1) at xdisp.c:10902
    #3  0x0008745c in redisplay_preserve_echo_area (from_where=6) at
    xdisp.c:11512

    Lisp Backtrace:
    "track-mouse" (0x38d9ed)
    0x38d9cd Lisp type 5
    "mouse-drag-track" (0x67e525)
    "mouse-drag-region" (0x67e525)
    "call-interactively" (0x737301)
    (gdb) c
    Continuing.

    Breakpoint 5, update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0)
    at xdisp.c:9195
    (gdb) where
    #0  update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at
    xdisp.c:9195
    #1  0x000806ac in prepare_menu_bars () at xdisp.c:9073
    #2  0x00085810 in redisplay_internal (preserve_echo_area=0) at xdisp.c:10902
    #3  0x00083ecc in redisplay () at xdisp.c:10491
    #4  0x0017dba4 in read_char (commandflag=1, nmaps=2, maps=0xffbee3d8,

For cases like this, typing `c' does not get precise information.
If you see foo called from bar each time, you can't tell if it is
the same call to bar, or a second call to bar.

To find that out, use the `finish' command frame by frame, or
use stepping.

    In trying to anwswer your question as to why redisplay_internal() did not
    reset windows_or_buffers_changed, I tried breakpoints in various places in
    redisplay_internal() and redisplay().  This proved difficult, as it was not
    easy to put a breakpoint where it would not repeatedly be triggered.

Don't use breakpoints for a job like this!  Use stepping!

    Lisp Backtrace:
    "track-mouse" (0x38d9ed)
    0x38d9cd Lisp type 5
    "mouse-drag-track" (0x553c05)
    "mouse-drag-region" (0x553c05)
    "call-interactively" (0x737301)
    (gdb) c
    Continuing.
    Hardware watchpoint 6: windows_or_buffers_changed

    Old value = 0
    New value = 1

That might be what we need to know.  mouse-drag-region
has to call delete-overlay.

So it isn't a bug.  Just the lack of optimization
in this case.




reply via email to

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