Subject: Re: bug#12452: 24.2.50; change buffer of window after window-state-put

From: martin rudalics <[email-masked]>
Date: Sun, 16 Sep 2012 12:33:36 +0200

> #>: emacs -Q
 > C-x 2
 > M-: (setq wmst (window-state-get)) RET
 > M-: (window-state-put wmst) RET
 > C-x b RET
 >
 > --------------------
 > ####
 > (gdb) bt full
 > #0  0x00007ffff1cb9287 in kill () from /usr/lib/libc.so.6
 > No symbol table info available.
 > #1  0x000000000053d849 in fatal_error_backtrace (sig=sig@entry=6,
 > backtrace_limit=backtrace_limit@entry=10) at emacs.c:331
 > No locals.
 > #2  0x00000000005635c3 in emacs_abort () at sysdep.c:1836
 > No locals.
 > #3  0x00000000004841ec in Fframe_first_window
 > (frame_or_window=frame_or_window@entry=19095669) at window.c:362
 >         window = <optimized out>
 > #4  0x000000000057dd27 in choose_minibuf_frame () at minibuf.c:136
 >         tail = 16486518
 >         frame = 19095669
 > #5  0x000000000057ddf9 in choose_minibuf_frame_1 (ignore=ignore@entry=12734962)
 > at minibuf.c:143
 > No locals.
 > #6  0x00000000005e322f in unbind_to (count=<optimized out>, value=12734962)
 > at eval.c:3233
 >         this_binding = {symbol = <optimized out>, old_value = 12734962,
 > func = 0x57ddf0 <choose_minibuf_frame_1>, unused = <optimized out>}
 >         quitf = 12734962
 > #7  0x00000000005e3436 in unwind_to_catch (catch=0x7fffffffdaa0,
 > value=<optimized out>) at eval.c:1118
 >         last_time = true
 > #8  0x00000000005e5c75 in Fsignal (error_symbol=error_symbol@entry=12786834,
 > data=31126854) at eval.c:1567
 >         unwind_data = <optimized out>
 >         conditions = 9375190
 >         string = <optimized out>
 >         real_error_symbol = 12786834
 >         clause = 12735010
 >         h = <optimized out>
 >         bp = <optimized out>
 > #9  0x00000000005e5ca9 in xsignal (error_symbol=error_symbol@entry=12786834,
 > data=<optimized out>) at eval.c:1588
 > No locals.
 > #10 0x00000000005e698a in xsignal2 (error_symbol=12786834, arg1=<optimized
 > out>, arg2=arg2@entry=20154669) at eval.c:1609
 > No locals.
 > #11 0x00000000005c7c66 in wrong_type_argument (predicate=<optimized out>,
 > value=value@entry=20154669) at data.c:106
 > No locals.
 > #12 0x0000000000490c66 in decode_valid_window (window=20154669) at
 > window.c:269
 > No locals.
 > #13 decode_valid_window (window=20154669) at window.c:5525
 > No locals.
 > #14 Fset_window_parameter (value=18828677, parameter=12967474,
 > window=20154669) at window.c:1874
 >         old_alist_elt = <optimized out>
 > #15 Fset_window_configuration (configuration=configuration@entry=20187325)
 > at window.c:5755

Thanks for the easily reproducible test-case.  The problem was that
`set-window-parameter' rejected invalid window arguments but
`set-window-configuration' called it with a not yet valid window as
argument.  I now restored the Emacs 24.1 behavior which allows any
window as argument.  Please try again.

Thanks again, martin