Jürgen Spitzmüller wrote:
Vincent van Ravesteijn - TNW wrote:
#0 0x0000000000606de8 in lyx::emergencyCleanup () at LyX.cpp:799
#1 0x0000000000607115 in lyx::lyx_exit (exit_code=1) at LyX.cpp:196
#2 0x000000000076b80e in boost::assertion_failed (expr=0xe191b6
"false", function=0xf6bfe0 "void >lyx::doAssert(const char*, const
char*, long int)", file=0xf6bfa8 "lassert.cpp", line=23) at boost.cpp:47
#3 0x0000000000d993cf in lyx::doAssert (expr=0xe3b1a8 "singleton_",
file=0xe3b1a0 "LyX.cpp", line=1221) at >lassert.cpp:23
#4 0x00000000006080be in lyx::getGuiMessages () at LyX.cpp:1221
#5 0x0000000000d988b5 in lyx::_ ([EMAIL PROTECTED]) at gettext.cpp:29
#6 0x000000000045f3d8 in ~Buffer (this=0x132a8e0) at Buffer.cpp:302
#7 0x00000000008ba200 in __tcf_0 () at mathed/MacroTable.cpp:71
#8 0x0000003926834029 in exit () from /lib64/libc.so.6
#9 0x000000392681e07b in __libc_start_main () from /lib64/libc.so.6
#10 0x0000000000434629 in _start () ^done
Seeing: MacroTable...
Was the GuiTabular dialog open by any chance ?
Because if so, that is the reason.
I think the reason is that when this warning
if (!d->temppath.destroyDirectory()) {
Alert::warning(_("Could not remove temporary directory"),
bformat(_("Could not remove the temporary directory
%1$s"),
from_utf8(d->temppath.absFilename())));
}
is issued in Buffer::~Buffer(), the LyX * singleton_ in LyX.cpp is already
destroyed. The assertion happens because gettext.cpp (i.e. _()) calls
getGuiMessages() which itself relies on singleton_ und thus triggers the
assert if it is 0.
Seems we cannot issue a GUI warning message anymore at this point.
I think the warning is wrong, though. There's no reason there should be
a failure to remove the temporary directory...except perhaps that it was
already destroyed. So I think we have an extra Buffer lying around for
some reason, and it's being destroyed on exit. This might be an issue
with the new search stuff. It creates a Buffer for its own use, doesn't it?
rh