Package: emacs;
Reported by: Stephen Berman <Stephen.Berman <at> rub.de>
Date: Tue, 5 Jul 2011 23:22:01 UTC
Severity: normal
Found in version 24.0.50
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Stephen Berman <stephen.berman <at> gmx.net> To: martin rudalics <rudalics <at> gmx.at> Cc: 9006 <at> debbugs.gnu.org Subject: bug#9006: 24.0.50; Abort in unshow_buffer/kill-buffer Date: Sun, 10 Jul 2011 22:31:38 +0200
On Sun, 10 Jul 2011 15:30:33 +0200 martin rudalics <rudalics <at> gmx.at> wrote: >> Is window-point set to 1 as a side effect of making the temporary >> buffer? > > No. It happens because I used BEG instead of the buffer's point. > >>> Rather _you_ did set the old >>> buffer's window point to 1 and it stays put there when you set w->buffer >>> to old_buffer upon exiting `vertical-motion'. >> >> Do you have a suggestion how to reset point? > > I attached I patch. It compiles but is hardly trustworthy. For > example, old_buffer might have got killed in the meantime. I applied the patch and rebuilt Emacs, then started with my initializations under gdb. Emacs came up fine, then I type C-h C-a and it aborted in unshow_buffer; the backtrace is almost identical to the one I posted previously. Then I started Emacs again, started Gnus, as with your first suggested patch with set_marker_both (w->buffer, BEG, BEGV) the display was unstable (unselected window at first blank, then blank fringe), then tried `h' and it worked a few times but the response was slow, and then (after `h' not C-g) Emacs aborted in unshow_buffer; backtrace below. Just out of curiosity (since I don't understand the code), I rebuilt again with the following call (old_buffer instead of w->buffer): set_marker_both (w->pointm, old_buffer, BUF_PT (current_buffer), BUF_PT_BYTE (current_buffer)); This did not cause an abort with C-h C-a nor with h in Gnus, but it showed the same problem of point in the non-selected window jumping to point-min, despite not passing BEG and BEGV. Steve Berman #0 abort () at /data/steve/bzr/emacs/quickfixes/src/emacs.c:379 No locals. #1 0x080a71a7 in unshow_buffer (w=0xa881840) at /data/steve/bzr/emacs/quickfixes/src/window.c:1801 buf = 175435581 b = 0xa74ef38 #2 0x080ae5a5 in delete_all_subwindows (window=176691269) at /data/steve/bzr/emacs/quickfixes/src/window.c:5750 w = 0xa881840 #3 0x080af93f in Fdelete_other_windows_internal (window=141161989, root= 175703581) at /data/steve/bzr/emacs/quickfixes/src/window.c:2753 w = 0x869f600 r = 0xa790618 s = <value optimized out> f = 0x86e2b00 sibling = <value optimized out> pwindow = <value optimized out> swindow = <value optimized out> delta = <value optimized out> startpos = 1 top = 0 new_top = <value optimized out> resize_failed = <value optimized out> #4 0x081ab1d8 in Ffuncall (nargs=3, args=0xbfffe070) at /data/steve/bzr/emacs/quickfixes/src/eval.c:3012 fun = <value optimized out> original_fun = <value optimized out> funcar = <value optimized out> numargs = 2 lisp_numargs = <value optimized out> val = <value optimized out> backtrace = { next = 0xbfffe1a4, function = 0xbfffe070, args = 0xbfffe074, nargs = 2, debug_on_exit = 0 ---Type <return> to continue, or q <return> to quit--- } internal_args = 0xbfffe074 i = <value optimized out> #5 0x081e2c26 in exec_byte_code (bytestr=<value optimized out>, vector= 136775173, maxdepth=20, args_template=138576074, nargs=0, args=<value optimized out>) at /data/steve/bzr/emacs/quickfixes/src/bytecode.c:785 op = <value optimized out> vectorp = <value optimized out> stack = { pc = 0x83bd4a7 "\210\324\016\027!\210\325\016\027!\210Ї", byte_string = 136775145, byte_string_start = 0x83bd449 "\b\204T", constants = 136775173, next = 0xbfffe33c } top = 0xbfffe070 result = <value optimized out> #6 0x081e3888 in Fbyte_code (bytestr=136775145, vector=136775173, maxdepth=20) at /data/steve/bzr/emacs/quickfixes/src/bytecode.c:423 No locals. #7 0x081aa61c in eval_sub (form=136775134) at /data/steve/bzr/emacs/quickfixes/src/eval.c:2363 numargs = <value optimized out> args_left = 138576074 i = 3 maxargs = 3 argvals = {136775145, 136775173, 20, 144317952, 17, 0, 175461590, 0} fun = <value optimized out> val = <value optimized out> original_fun = <value optimized out> original_args = 136775142 funcar = <value optimized out> backtrace = { next = 0xbfffe41c, function = 0xbfffe1bc, args = 0xbfffe184, ---Type <return> to continue, or q <return> to quit--- nargs = 3, debug_on_exit = 0 } #8 0x081a94e1 in internal_catch (tag=138866114, func=0x81aa180 <eval_sub>, arg= 136775134) at /data/steve/bzr/emacs/quickfixes/src/eval.c:1247 c = { tag = 138866114, val = 138576074, next = 0xbfffea84, gcpro = 0x0, jmp = {{ __jmpbuf = {-1073749280, 136775032, 51, -1073749304, 6093792, -894025585}, __mask_was_saved = 0, __saved_mask = { __val = {138576074, 1, 0, 139051442, 138576074, 3221217864, 139051466, 2, 1073741824, 3221217992, 135966707, 141161989, 139051442, 3221218228, 3221218356, 3221219972, 0, 2, 147359232, 2, 3221218004, 145845888, 136764096, 1, 3221218020, 139051464, 138992122, 3221218000, 3221218004, 138576074, 3221218332, 3221218016} } }}, backlist = 0xbfffe41c, handlerlist = 0xbfffeb4c, lisp_eval_depth = 4, pdlcount = 16, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0xbfffe33c } #9 0x081e23e4 in exec_byte_code (bytestr=<value optimized out>, vector= 136775037, maxdepth=16, args_template=138576074, nargs=0, args=<value optimized out>) at /data/steve/bzr/emacs/quickfixes/src/bytecode.c:966 v1 = <value optimized out> op = <value optimized out> vectorp = <value optimized out> ---Type <return> to continue, or q <return> to quit--- stack = { pc = 0x83bd506 "-\207", byte_string = 136775017, byte_string_start = 0x83bd4b5 "\b\211\030\203\063", constants = 136775037, next = 0xbfffe4bc } top = 0xbfffe2e0 result = <value optimized out> #10 0x081aabf8 in funcall_lambda (fun=136774989, nargs=0, arg_vector=0xbfffe464) at /data/steve/bzr/emacs/quickfixes/src/eval.c:3240 val = <value optimized out> syms_left = 138576074 next = <value optimized out> lexenv = 138576074 count = <value optimized out> i = <value optimized out> optional = <value optimized out> rest = <value optimized out> #11 0x081aaff3 in Ffuncall (nargs=1, args=0xbfffe460) at /data/steve/bzr/emacs/quickfixes/src/eval.c:3070 fun = <value optimized out> original_fun = 138968194 funcar = <value optimized out> numargs = 0 lisp_numargs = <value optimized out> val = <value optimized out> backtrace = { next = 0xbfffe59c, function = 0xbfffe460, args = 0xbfffe464, nargs = 0, debug_on_exit = 0 } internal_args = <value optimized out> i = <value optimized out> #12 0x081e2c26 in exec_byte_code (bytestr=<value optimized out>, vector= ---Type <return> to continue, or q <return> to quit--- 171336941, maxdepth=16, args_template=138576074, nargs=0, args=<value optimized out>) at /data/steve/bzr/emacs/quickfixes/src/bytecode.c:785 op = <value optimized out> vectorp = <value optimized out> stack = { pc = 0x8c98721 "\210\202\202", byte_string = 146497641, byte_string_start = 0x8c986b0 "\306\b!\203\n", constants = 171336941, next = 0xbfffe63c } top = 0xbfffe460 result = <value optimized out> #13 0x081aabf8 in funcall_lambda (fun=143981725, nargs=2, arg_vector=0xbfffe5e4) at /data/steve/bzr/emacs/quickfixes/src/eval.c:3240 val = <value optimized out> syms_left = 138576074 next = <value optimized out> lexenv = 138576074 count = <value optimized out> i = <value optimized out> optional = <value optimized out> rest = <value optimized out> #14 0x081aaff3 in Ffuncall (nargs=3, args=0xbfffe5e0) at /data/steve/bzr/emacs/quickfixes/src/eval.c:3070 fun = <value optimized out> original_fun = 146011586 funcar = <value optimized out> numargs = 2 lisp_numargs = <value optimized out> val = <value optimized out> backtrace = { next = 0xbfffe71c, function = 0xbfffe5e0, args = 0xbfffe5e4, nargs = 2, ---Type <return> to continue, or q <return> to quit--- debug_on_exit = 0 } internal_args = <value optimized out> i = <value optimized out> #15 0x081e2c26 in exec_byte_code (bytestr=<value optimized out>, vector= 172883509, maxdepth=16, args_template=138576074, nargs=0, args=<value optimized out>) at /data/steve/bzr/emacs/quickfixes/src/bytecode.c:785 op = <value optimized out> vectorp = <value optimized out> stack = { pc = 0xa483820 "\210\315\307\b!!\207", byte_string = 172756425, byte_string_start = 0xa4837f8 "\b\211\031\205\v", constants = 172883509, next = 0x0 } top = 0xbfffe5e0 result = <value optimized out> #16 0x081aabf8 in funcall_lambda (fun=172883685, nargs=0, arg_vector=0xbfffe784) at /data/steve/bzr/emacs/quickfixes/src/eval.c:3240 val = <value optimized out> syms_left = 138576074 next = <value optimized out> lexenv = 138576074 count = <value optimized out> i = <value optimized out> optional = <value optimized out> rest = <value optimized out> #17 0x081aaff3 in Ffuncall (nargs=1, args=0xbfffe780) at /data/steve/bzr/emacs/quickfixes/src/eval.c:3070 fun = <value optimized out> original_fun = 171201106 funcar = <value optimized out> numargs = 0 lisp_numargs = <value optimized out> val = <value optimized out> ---Type <return> to continue, or q <return> to quit--- backtrace = { next = 0xbfffe8ec, function = 0xbfffe780, args = 0xbfffe784, nargs = 0, debug_on_exit = 0 } internal_args = <value optimized out> i = <value optimized out> #18 0x081ab5d3 in apply1 (fn=171201106, arg=138576074) at /data/steve/bzr/emacs/quickfixes/src/eval.c:2745 ret_ungc_val = 195149784 #19 0x081a706d in Fcall_interactively (function=171201106, record_flag= 138576074, keys=138604237) at /data/steve/bzr/emacs/quickfixes/src/callint.c:379 input = <value optimized out> funval = <value optimized out> events = <value optimized out> args = <value optimized out> visargs = <value optimized out> specs = 138576074 filter_specs = <value optimized out> teml = <value optimized out> up_event = 138576074 enable = 138576074 speccount = <value optimized out> next_event = <value optimized out> prefix_arg = 138576074 string = 0x0 tem = <value optimized out> varies = <value optimized out> i = <value optimized out> nargs = <value optimized out> foo = <value optimized out> prompt1 = "\000\000\000\000\000 ", '\000' <repeats 93 times> tem1 = <value optimized out> arg_from_tty = 0 ---Type <return> to continue, or q <return> to quit--- key_count = 1 record_then_fail = 0 save_this_command = 171201106 save_last_command = 139533058 save_this_original_command = 171201106 save_real_this_command = 171201106 #20 0x081ab1c1 in Ffuncall (nargs=4, args=0xbfffe930) at /data/steve/bzr/emacs/quickfixes/src/eval.c:3016 fun = <value optimized out> original_fun = <value optimized out> funcar = <value optimized out> numargs = 3 lisp_numargs = <value optimized out> val = <value optimized out> backtrace = { next = 0x0, function = 0xbfffe930, args = 0xbfffe934, nargs = 3, debug_on_exit = 0 } internal_args = 0xbfffe934 i = <value optimized out> #21 0x081ab471 in call3 (fn=138698938, arg1=171201106, arg2=138576074, arg3= 138576074) at /data/steve/bzr/emacs/quickfixes/src/eval.c:2809 ret_ungc_val = 195149784 args = {138698938, 171201106, 138576074, 138576074} #22 0x0813c00f in Fcommand_execute (cmd=171201106, record_flag=138576074, keys= 138576074, special=138576074) at /data/steve/bzr/emacs/quickfixes/src/keyboard.c:10274 final = <value optimized out> tem = <value optimized out> prefixarg = 138576074 #23 0x08149980 in command_loop_1 () at /data/steve/bzr/emacs/quickfixes/src/keyboard.c:1572 scount = 2 cmd = <value optimized out> ---Type <return> to continue, or q <return> to quit--- keybuf = {416, 135527171, 176532358, 138576098, -1073747426, 139533058, 138689802, 138576074, -1073747416, -1073747426, 138576074, 138576074, -1073747352, 135527446, 176532358, -1073747426, 138576074, 138689800, 0, 0, -1232775064, 2, 139002824, 139002840, -1073747384, 135973625, 2, 138828926, 23, 0} i = <value optimized out> prev_modiff = 122 prev_buffer = 0xa7e2828 #24 0x081a95b1 in internal_condition_case (bfun=0x8149660 <command_loop_1>, handlers=138607114, hfun=0x813fb60 <cmd_error>) at /data/steve/bzr/emacs/quickfixes/src/eval.c:1493 val = <value optimized out> c = { tag = 138576074, val = 138576074, next = 0xbfffeba8, gcpro = 0x0, jmp = {{ __jmpbuf = {0, 139002824, 139002840, -1073747096, 4971488, -894052209}, __mask_was_saved = 0, __saved_mask = { __val = {1, 3087005952, 7, 142299368, 45, 142299368, 3086910040, 3065788385, 134551036, 7, 0, 3221220192, 3221220136, 0, 3087005952, 134550029, 3067970904, 3067183092, 3066786931, 7, 3221220432, 3221220128, 3221220432, 135614420, 2, 3221220292, 3221220128, 3065744920, 3067970904, 0, 4294967295, 3087003636} } }}, backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0 } ---Type <return> to continue, or q <return> to quit--- h = { handler = 138607114, var = 138576074, chosen_clause = 138576098, tag = 0xbfffea84, next = 0x0 } #25 0x0813eae5 in command_loop_2 (ignore=138576074) at /data/steve/bzr/emacs/quickfixes/src/keyboard.c:1156 val = 195149784 #26 0x081a94e1 in internal_catch (tag=138605090, func= 0x813eac0 <command_loop_2>, arg=138576074) at /data/steve/bzr/emacs/quickfixes/src/eval.c:1247 c = { tag = 138605090, val = 138576074, next = 0x0, gcpro = 0x0, jmp = {{ __jmpbuf = {0, 139002824, 139002840, -1073746824, 4725728, -894025585}, __mask_was_saved = 0, __saved_mask = { __val = {0, 0, 0, 0, 0, 0, 0, 0, 3066169116, 0, 0, 0, 3066169116, 0, 0, 0, 64, 3221220408, 135893371, 138253360, 64, 14, 138741954, 138741952, 138576074, 3221220472, 135973238, 138741954, 138576074, 138576074, 1, 3221220520} } }}, backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0 } ---Type <return> to continue, or q <return> to quit--- #27 0x0813f686 in command_loop () at /data/steve/bzr/emacs/quickfixes/src/keyboard.c:1135 No locals. #28 recursive_edit_1 () at /data/steve/bzr/emacs/quickfixes/src/keyboard.c:756 count = 1 val = 0 #29 0x0813f982 in Frecursive_edit () at /data/steve/bzr/emacs/quickfixes/src/keyboard.c:820 count = <value optimized out> buffer = 138576074 #30 0x0813aa1c in main (argc=2, argv=0xbffff084) at /data/steve/bzr/emacs/quickfixes/src/emacs.c:1702 dummy = 1 stack_bottom_variable = 8 '\b' do_initial_setlocale = <value optimized out> skip_args = 0 rlim = { rlim_cur = 8388608, rlim_max = 18446744073709551615 } no_loadup = 0 junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 Lisp Backtrace: "delete-other-windows-internal" (0xbfffe074) "byte-code" (0xbfffe184) "delete-other-windows" (0xbfffe464) "gnus-configure-windows" (0xbfffe5e4) "gnus-summary-select-article-buffer" (0xbfffe784) "call-interactively" (0xbfffe934)
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.