[prev in list] [next in list] [prev in thread] [next in thread]
List: koffice-devel
Subject: Re: Review Request: Fix a crash which appears in several documents
From: "Boudewijn Rempt" <boud () valdyas ! org>
Date: 2010-05-25 11:42:43
Message-ID: 20100525114243.4933.68270 () localhost
[Download RAW message or body]
> On 2010-05-21 12:14:46, Boudewijn Rempt wrote:
> > Hm, maybe something like:
> >
> > diff --git a/kword/part/frames/KWAnchorStrategy.cpp \
> > b/kword/part/frames/KWAnchorStrategy.cpp index a893ec6..c4f6f03 100644
> > --- a/kword/part/frames/KWAnchorStrategy.cpp
> > +++ b/kword/part/frames/KWAnchorStrategy.cpp
> > @@ -114,7 +114,10 @@ bool \
> > KWAnchorStrategy::checkState(KoTextDocumentLayout::LayoutState *state, \
> > int } else {
> > Q_ASSERT(layout->lineCount());
> > QTextLine tl = layout->lineForTextPosition(m_anchor->positionInDocument() \
> > - block.position());
> > - Q_ASSERT(tl.isValid());
> > + if (!tl.isValid()) {
> > + m_finished = false;
> > + return false;
> > + }
> > x = tl.cursorToX(m_anchor->positionInDocument() - block.position());
> > recalcFrom = 0;
> > }
> >
> > Would be better then, since that at least conforms to the apidox which \
> > says:
> > "The layout process will query the state of the anchored data after \
> > each line is layouted by calling checkState() which will return false \
> > as long as there is not enough layout information to properly position \
> > the anchored frame."
> > On the other hand, and I'm not yet sure whether it's related, when \
> > opening mumi0.odt (from kofficetests) I see that at certain pages the \
> > while loop KWTextDocumentLayout::Line is executed up to a quarter \
> > million times before exiting, leading to kword taking 100% cpu when \
> > showing some pages of that document.
>
> Thomas Zander wrote:
> The removing of that assert sounds wrong to me as that would hide the \
> real bug. To avoid end-users to hit a crash your isvalid+return may be \
> ok, but I'm not sure loop a million times is so much better.
> Bottom line is that the test doc triggers a state that shows a bug, which \
> should be fixed. And the assert is just a symptom of that bug.
> Boudewijn Rempt wrote:
> Actually, the loop and the assert don't seem related. I have isolated one \
> page from the test document that does trigger the loop, but doesn't \
> trigger the assert. I'm still trying to isolate the two bits in the test \
> document that trigger the assert.
I have created two test documents based on the original mumi0.odt document. \
One shows the loop, the other shows the assert. These documents are \
attached to two bugs:
https://bugs.kde.org/show_bug.cgi?id=238782 - Assert triggered when \
layouting the attached document https://bugs.kde.org/show_bug.cgi?id=238665 \
- layout loop when loading attached document
My conclusion is that these are two separate issues: the looping is not \
caused by the patch, since it is present in an unpatched kword as well.
- Boudewijn
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/4047/#review5794
-----------------------------------------------------------
On 2010-05-19 13:15:24, Jean-Nicolas Artaud wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/4047/
> -----------------------------------------------------------
>
> (Updated 2010-05-19 13:15:24)
>
>
> Review request for KOffice.
>
>
> Summary
> -------
>
> In KWAnchorStrategy::checkState when the alignment was horizontal or \
> vertical, if the asked position was not accessible by the actual cursor, \
> but was still valid for the document, kword crashed. This patch fix the \
> crash by putting the position of the last line accessible by the cursor. \
> It is the same as in oowriter or msword, because you cannot add pictures \
> in any position in the doc, but only at an accessible position with \
> cursor.
> You can find enclosed the screen-shot of the document \
> mw03_picture_from_clipart.doc after the fix.
>
> Diffs
> -----
>
> /trunk/koffice/kword/part/frames/KWAnchorStrategy.cpp 1128398
>
> Diff: http://reviewboard.kde.org/r/4047/diff
>
>
> Testing
> -------
>
> mw03_picture_from_clipart.doc
> mumi0.doc
> mw03_footnote_roman.doc
>
>
> Screenshots
> -----------
>
> After patch applied
> http://reviewboard.kde.org/r/4047/s/400/
>
>
> Thanks,
>
> Jean-Nicolas
>
>
_______________________________________________
koffice-devel mailing list
koffice-devel@kde.org
https://mail.kde.org/mailman/listinfo/koffice-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic