First, I would like to applaud all of your work on 0.5.4. I tried
AbiWord back in the 0.1.x days, and I wasn't terribly impressed
because I couldn't do anything useful without crashin, and then again
in the 0.3.x days, and I had real problems getting AbiWord to build
and run. But, earlier today I decided to see where the project is
now, and I was pleasantly surprised by the progress. AbiWord is
nearly to the point where I can feel good about recommending it for
use on term papers and other small tasks. Cool.
So, after playing with it a bit, I found a reliable way to crash it:
1. Start up AbiWord
2. Type Alt-Enter, Backspace, Delete
Ok, so at this point I wanted to get my hands dirty and see if I could
fix the bug, so I started traipsing through the source, and it looks
like the section created with the Alt-Enter is being deleted with the
backspace, but its child block doesn't have its m_pSectionLayout
pointer updated when this happends, so we get a block with a stale
m_pSectionLayout pointer.
So I trace through the code in the src/text tree for a while and look
at all that it does, but there is a lot going on, and a lot of it
isn't immediately obvious and isn't documented. So, I'm not very
clear on what exactly should be updating the stale pointer.
Furthermore, pt_PieceTable.h seems to reference some
".../dev/design/PieceTable.html" somewhere, but I can't find it. So,
uhh, where is it, and is there any documentation on the stuff in the
src/text tree which I perhaps missed? What can I read to figure what
is going on in all that src/text stuff?
-- Matt Kimball mkimball@xmission.com