* bug#14161: assertion failed: EQ (selected_window, XFRAME (selected_frame)->selected_window)
@ 2013-04-08 17:40 Stefan Monnier
2013-04-08 18:06 ` Stefan Monnier
0 siblings, 1 reply; 2+ messages in thread
From: Stefan Monnier @ 2013-04-08 17:40 UTC (permalink / raw)
To: 14161; +Cc: Dmitry Antipov
[-- Attachment #1: Type: text/plain, Size: 30 bytes --]
Making it into a bug report.
[-- Attachment #2: Type: message/rfc822, Size: 6186 bytes --]
From: Dmitry Antipov <dmantipov@yandex.ru>
To: Emacs development discussions <emacs-devel@gnu.org>
Cc: Stefan Monnier <monnier@IRO.UMontreal.CA>
Subject: Hit eassert introduced in r110971
Date: Sat, 06 Apr 2013 20:35:10 +0400
Message-ID: <51604EBE.1070306@yandex.ru>
Found 100% method to hit eassert introduced in r110971 within update_tool_bar:
1) ./src/emacs -nw -Q
2) M-x make-frame-on-display :0
3) Move mouse to new X frame and left-click;
4) Move mouse back to TTY frame and left-click;
5) Press C-g staying in TTY frame ==>
#0 0x0000003daf40eedb in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:41
#1 0x00000000005a1cf2 in terminate_due_to_signal (sig=6, backtrace_limit=2147483647)
at src/emacs.c:343
#2 0x000000000065d92d in die (msg=0x79db98 "assertion failed: EQ (selected_window, XFRAME (selected_frame)->selected_window)", file=
0x79b560 "src/xdisp.c", line=11427) at src/alloc.c:6522
#3 0x000000000044c6b5 in update_tool_bar (f=f@entry=0x14a29d8, save_match_data=save_match_data@entry=0)
at src/xdisp.c:11424
#4 0x000000000045fd3a in update_tool_bar (save_match_data=0, f=0x14a29d8) at src/xdisp.c:11094
#5 prepare_menu_bars () at src/xdisp.c:11123
#6 0x000000000046beea in redisplay_internal () at src/xdisp.c:12929
#7 0x00000000005aa3eb in read_char (commandflag=1, map=..., prev_event=..., used_mouse_menu=0x7fffb36ebbff, end_time=0x0)
at src/keyboard.c:2417
#8 0x00000000005c0a59 in read_decoded_char (commandflag=1, map=..., prev_event=..., used_mouse_menu=0x7fffb36ebbff)
at src/keyboard.c:8712
#9 0x00000000005c17ad in read_key_sequence (keybuf=0x7fffb36ebdc0, bufsize=30, prompt=..., dont_downcase_last=false,
can_return_switch_frame=true, fix_current_buffer=true) at src/keyboard.c:9044
#10 0x00000000005a71ca in command_loop_1 () at src/keyboard.c:1452
#11 0x0000000000681f1b in internal_condition_case (bfun=0x5a6c44 <command_loop_1>, handlers=..., hfun=0x5a634a <cmd_error>)
at src/eval.c:1193
#12 0x00000000005a6861 in command_loop_2 (ignore=...) at src/keyboard.c:1167
#13 0x00000000006817cb in internal_catch (tag=..., func=0x5a683e <command_loop_2>, arg=...)
at src/eval.c:964
#14 0x00000000005a6815 in command_loop () at src/keyboard.c:1146
#15 0x00000000005a5b9a in recursive_edit_1 () at src/keyboard.c:779
#16 0x00000000005a5f77 in Frecursive_edit () at src/keyboard.c:843
#17 0x00000000005a367f in main (argc=3, argv=0x7fffb36ec488) at src/emacs.c:1531
Dmitry
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#14161: assertion failed: EQ (selected_window, XFRAME (selected_frame)->selected_window)
2013-04-08 17:40 bug#14161: assertion failed: EQ (selected_window, XFRAME (selected_frame)->selected_window) Stefan Monnier
@ 2013-04-08 18:06 ` Stefan Monnier
0 siblings, 0 replies; 2+ messages in thread
From: Stefan Monnier @ 2013-04-08 18:06 UTC (permalink / raw)
To: 14161; +Cc: Dmitry Antipov
> 1) ./src/emacs -nw -Q
> 2) M-x make-frame-on-display :0
> 3) Move mouse to new X frame and left-click;
> 4) Move mouse back to TTY frame and left-click;
> 5) Press C-g staying in TTY frame ==>
> #2 0x000000000065d92d in die (msg=0x79db98 "assertion failed: EQ
> (selected_window, XFRAME (selected_frame)->selected_window)", file=
> 0x79b560 "src/xdisp.c", line=11427) at src/alloc.c:6522
I've installed the patch below which seems to fix this problem for me.
Stefan
=== modified file 'src/window.c'
--- src/window.c 2013-04-02 01:54:56 +0000
+++ src/window.c 2013-04-08 17:58:36 +0000
@@ -485,12 +485,6 @@
w = XWINDOW (window);
w->frozen_window_start_p = 0;
- if (NILP (norecord))
- {
- w->use_time = ++window_select_count;
- record_buffer (w->contents);
- }
-
/* Make the selected window's buffer current. */
Fset_buffer (w->contents);
@@ -515,6 +509,15 @@
select_window_1 (window, inhibit_point_swap);
+ /* record_buffer can run QUIT, so make sure it is run only after we have
+ re-established the invariant between selected_window and selected_frame,
+ otherwise the temporary broken invariant might "escape" (bug#14161). */
+ if (NILP (norecord))
+ {
+ w->use_time = ++window_select_count;
+ record_buffer (w->contents);
+ }
+
bset_last_selected_window (XBUFFER (w->contents), window);
windows_or_buffers_changed++;
return window;
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-04-08 18:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-08 17:40 bug#14161: assertion failed: EQ (selected_window, XFRAME (selected_frame)->selected_window) Stefan Monnier
2013-04-08 18:06 ` Stefan Monnier
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).