How to "flush" Writer node changes into layouting?
vmiklos at collabora.co.uk
Wed Aug 17 19:09:16 UTC 2016
On Sat, Aug 13, 2016 at 02:10:15AM +0200, Jan-Marek Glogowski <glogow at fbihome.de> wrote:
> 2. Fix the layouting problem introduced by commit
> This also just happens for large MM documents with page bound frames.
> Everything with 300+ pages is basically unbearable now. The commit is
> correct, but previously the - now enabled - "fixup" code was just run at
> the end of the SwPageFrm generation.
> One of the bugs uncovered by the fix is fixed by "Use InsertPage in
> AssertFlyPages", but for the second I just found the workaround done by
> "Switch back to InsertPageBreak in SwDoc::AppendDoc".
> I would like to get rid of this workaround, but before spending even
> more time on the problem, I would like to know, if anyone knows - as
> quoted from the patch:
> + // a magic call to sync with whatever, so AssertFlyPages
> + // sees the correct format AKA same as InsertPageBreak does
> My workaround just works, because InsertPageBreak actually splits the
> current content node, which moves the cursor to a now page, which isn't
> generated. Now EndOfAction needs to fix the cursor and somehow something
> in the stack is able to flush the cached data. Some comments in the code
> of the backtrace mention an IdleCollector, but I guess that's code is
> already done.
> I've added most information to the commit message of "Switch back to
> InsertPageBreak in SwDoc::AppendDoc"
Do I understand correctly that the tip of your branch is a unit test for
the problem, and the previous commit is the conditional revert? (As in:
it re-introduces the previously existing behavior without introducing
the mentioned Coverity problem again.) If so, I think that's fine to
have, but please don't pick the revert as-is to master, i.e. instead of
introducing that #if 0 code, just remove the code that would be
disabled. I'm afraid I don't know more about the SwDoc::AppendDoc() code
than you. :-)
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 181 bytes
Desc: Digital signature
More information about the LibreOffice