Subject: bug#14161: assertion failed: EQ (selected_window, XFRAME (selected_frame)->selected_window)

From: Stefan Monnier <[email-masked]>
Date: Mon, 08 Apr 2013 13:40:22 -0400

Making it into a bug report.

Subject: Hit eassert introduced in r110971
From: Dmitry Antipov <[email-masked]>
To: Emacs development discussions <[email-masked]>
Cc: Stefan Monnier <[email-masked]>
Date: Sat, 06 Apr 2013 20:35:10 +0400
List-Id: "Emacs development discussions." <emacs-devel.gnu.org>

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