I'm hoping others can reproduce this. I can reproduce in current trunk
with Ubuntu 12.04 as follows:

- Enable "spellcheck continuously"
- Insert a table, say 4x4.
- Click on the upper-left cell.
- Enter "a".
- Undo twice, then redo twice, then undo once.

I get a SIGSEGV.

I can also reproduce with the following LFUN:
command-sequence buffer-new; tabular-insert 4 4; char-left;
self-insert a; undo; undo; redo; redo; undo

I git-bisected to the following commit, but I could be incorrect
because I did not do clean builds.

---
commit 6ec1683aeecf701edf5d79f449e2e749e93d4342
Author: Jean-Marc Lasgouttes <lasgout...@lyx.org>
Date:   Tue Jul 17 22:26:44 2012 +0200

    Fix crash introduced in my previous commit f6b1c24b

    Cursor::fixIfBroken does not do what I thought it did. Lift some code
    from StableDocIterator::asDocIterator instead.
---

On some of the git revisions the crash recipe above worked, and on
others I needed an extra step: After doing the above steps, I then go
to another cell and enter text. Immediately after entering text I get
a crash.

Below is the backtrace on current trunk:

Program received signal SIGSEGV, Segmentation fault.
0x00000000005490b7 in inMathed (this=0x1ebcad8) at DocIterator.h:139
139             { return !empty() && inset().inMathed(); }
(gdb) bt
#0  0x00000000005490b7 in inMathed (this=0x1ebcad8) at DocIterator.h:139
#1  lyx::DocIterator::lastpos (this=0x1ebcad8) at DocIterator.cpp:233
#2  0x000000000053091c in lyx::Cursor::checkNewWordPosition
(this=0x1ebca38) at Cursor.cpp:585
#3  0x0000000000530b80 in lyx::Cursor::resetAnchor (this=0x1ebca38) at
Cursor.cpp:543
#4  0x0000000000531042 in lyx::Cursor::clearSelection (this=<optimized
out>) at Cursor.cpp:1233
#5  0x00000000006e9a88 in lyx::BufferView::dispatch (this=0x1ebc910,
cmd=..., dr=...) at BufferView.cpp:1346
#6  0x000000000096487a in lyx::frontend::GuiView::dispatchToBufferView
(this=0x16d4840, cmd=..., dr=...) at GuiView.cpp:3129
#7  0x000000000097bf98 in lyx::frontend::GuiView::dispatch
(this=0x16d4840, cmd=..., dr=...) at GuiView.cpp:3673
#8  0x0000000000948cbd in lyx::frontend::GuiApplication::dispatch
(this=0x11df740, cmd=..., dr=...) at GuiApplication.cpp:1780
#9  0x000000000093fb19 in lyx::frontend::GuiApplication::dispatch
(this=0x11df740, cmd=...) at GuiApplication.cpp:1172
#10 0x00000000005d3472 in lyx::dispatch (action=...) at LyX.cpp:1270
#11 0x000000000093ad10 in
lyx::frontend::GuiApplication::processFuncRequest (this=<optimized
out>, func=...) at GuiApplication.cpp:1918
#12 0x0000000000943299 in lyx::frontend::GuiApplication::processKeySym
(this=0x11df740, keysym=..., state=lyx::ControlModifier)
    at GuiApplication.cpp:1912

Any ideas?

Thanks,

Scott

Reply via email to