-
Michael Stahl yazdı
The first problem here is that the table isn't fully formatted; it fails with: warn:legacy.osl:22975:22975:sw/source/core/layout/tabfrm.cxx:2639: debug assertion: <SwTabFrame::MakeAll()> - format of table lowers suppressed by fix i44910 The situation is that there is a big table split across pages; the first line of the table would fit onto the previous page so its follow frame moves backward and then the table frame tries to split again. During SwTabFrame::Split(), all the frames in the table are formatted, and at that point a footnote that was on the next page is moved to this page. A nested table frame also splits, such that it fits inside the page... but then the split of the outer table fails by 5 twips, because the moved footnote has reduced the space available for the outer table. The footnote is anchored in the inner table's follow frame, which would be moved to the next page anyway, taking the footnote with it. Fix this in lcl_RecalcSplitLine() by checking for footnotes that are anchored in the follow frame of the top-level table being split, and adding their height to the available space on the page. Fixing the first problem avoids the crash as well; the crash happens since 18765b9f and it's rather hard to avoid it in a situation where formatting starts at the end and recurses into an unformatted table preceding it, which isn't supposed to happen. Change-Id: I85286583c1c4930468a1c283afc98504cd35bb71 Reviewed-on: https://gerrit.libreoffice.org/73465 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
e37ffdd1