summaryrefslogtreecommitdiffstats
path: root/sw/source/core/inc/layfrm.hxx
diff options
context:
space:
mode:
authorMichael Stahl <michael.stahl@allotropia.de>2022-04-20 18:48:30 +0200
committerMichael Stahl <michael.stahl@allotropia.de>2022-04-22 10:58:21 +0200
commitea6a13c6a0ced9c4669ceae08cbd539a62e696e2 (patch)
tree1a67bd5781719aca37e9cd208c3231696d0481b5 /sw/source/core/inc/layfrm.hxx
parentRelease 6.3.6.15 (diff)
downloadcore-ea6a13c6a0ced9c4669ceae08cbd539a62e696e2.tar.gz
core-ea6a13c6a0ced9c4669ceae08cbd539a62e696e2.zip
sw: layout: fix crash when deleting page with section being formatted
This crashes only when calling storeToURL() with writer_pdf_Export? There is a text frame 112, followed by section frame 126, which contains table frame 127. The section frame 126 is being formatted, which in SwFrame::PrepareMake() formats its prev, text frame 112. This does MoveBwd() and in SwContentFrame::MakeAll() formats its next, tab frame 127. This also does MoveBwd() and then there is this really odd condition in SwTabFrame::Paste() where it calls SwFrame::CheckPageDescs() if it *doesn't* have a RES_PAGEDESC item and the page has a non-default page style - this condition remains inexplicable since initial CVS import. Then CheckPageDesc() sees the (next) page is empty and deletes it. So check in sw::IsPageFrameEmpty() that there aren't any sections with IsDeleteForbidden() set. (regression from commit b9ef71476fd70bc13f50ebe80390e0730d1b7afb) Change-Id: I3c64fe40fabffc255c4146a35c678ce6a1cc09c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133222 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 85aa57359befd7a21b3fdf36f2b362f50495f77c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133151 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 116b246e42a1c807e4e693bd020231a22f05abcd)
Diffstat (limited to 'sw/source/core/inc/layfrm.hxx')
-rw-r--r--sw/source/core/inc/layfrm.hxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/sw/source/core/inc/layfrm.hxx b/sw/source/core/inc/layfrm.hxx
index f39c9ae513e9..589133216ea6 100644
--- a/sw/source/core/inc/layfrm.hxx
+++ b/sw/source/core/inc/layfrm.hxx
@@ -99,6 +99,7 @@ public:
SwPrintData const*const pPrintData = nullptr ) const override;
const SwFrame *Lower() const { return m_pLower; }
SwFrame *Lower() { return m_pLower; }
+ bool ContainsDeleteForbiddenLayFrame() const;
const SwContentFrame *ContainsContent() const;
inline SwContentFrame *ContainsContent();
const SwCellFrame *FirstCell() const;