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