bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#891: 23.0.60; Emacs aborts after buffer-swap-text


From: Jason Rumney
Subject: bug#891: 23.0.60; Emacs aborts after buffer-swap-text
Date: Fri, 05 Sep 2008 07:06:57 +0800
User-agent: Thunderbird 2.0.0.16 (Windows/20080708)

merge 891 716
reassign 716 emacs
reassign 805 emacs
thanks

Stephen Berman wrote:
1. emacs -Q
2. Load the library tabbar.el, available from
http://emhacks.cvs.sourceforge.net/emhacks/emhacks/tabbar.el?revision=1.69&view=markup
3. M-x tabbar-mode
4. M-: (buffer-swap-text (get-buffer "*Messages*"))
5. C-c C-right (tabbar-forward)
   ==> Emacs aborts

This seems to be the same bug as has been happening with tar-mode on Windows since tar-mode was changed to use buffer-swap-text. So the underlying bug is not platform specific after all. Do you also get crashes when opening tar files in Emacs?

The full backtrace is below.  According to the Lisp backtrace, the abort
occurs during or after switch-to-buffer.  Yet typing C-x b after step 4
above does not make Emacs abort.  Moreover, when I directly call any of
the tabbar.el functions listed in the backtrace and step through them
with edebug, this also fails to make Emacs abort.  Yet the above recipe
is reliably reproducible.
(Since the abort occurs in unshow_buffer, my guess, based on a comment
at line 8314 of xdisp.c, is that switch-to-buffer needs to have
something like the code in with_echo_area_buffer that changes w->pointm.
I guess this would go after the call to Fset_buffer in switch-to-buffer,
but I don't know how to write the code.)

Can this be done in Fbuffer_swap_text, rather than expecting other code to clean up after the fact? Some of the crashes I've seen while debugging this have not involved switch-to-buffer, so there are probably many other locations where this clean up code needs to go if it can't be done in Fbuffer_swap_text for some reason.







reply via email to

[Prev in Thread] Current Thread [Next in Thread]