[Top][All Lists]
[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.
- RE: Multiple runs of menu-bar-update-hook, Marshall, Simon, 2006/08/07
- RE: Multiple runs of menu-bar-update-hook, Marshall, Simon, 2006/08/09
- RE: Multiple runs of menu-bar-update-hook, Marshall, Simon, 2006/08/09
- RE: Multiple runs of menu-bar-update-hook, Marshall, Simon, 2006/08/10
- RE: Multiple runs of menu-bar-update-hook, Marshall, Simon, 2006/08/11
- Re: Multiple runs of menu-bar-update-hook,
Richard Stallman <=
- RE: Multiple runs of menu-bar-update-hook, Marshall, Simon, 2006/08/14