How to "flush" Writer node changes into layouting?
Miklos Vajna
vmiklos at collabora.co.uk
Wed Aug 17 19:09:16 UTC 2016
Hi Jan-Marek,
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
> 60d34e1c840d2c317bb7d0a5b14f4602c22b3fcc
>
> 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. :-)
Regards,
Miklos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20160817/2126e164/attachment.sig>
More information about the LibreOffice
mailing list