Kaydet (Commit) 1416c542 authored tarafından Michael Stahl's avatar Michael Stahl

tdf#119109 sw: tweak assertion in PrepareMake()

Empty section frames cause trouble for the assert added in
e14056e6:

* existing ones may be skipped by MoveBwd(), so a SwTextFrame moves to
  the previous page but the SwSectionFrame that was its mpPrev remains
  on this page; e.g. ooo110854-1.rtf

* a SwSectionFrame moves backward, then some SwTextFrame in it splits
  and the follow tries to move forward, resulting in *new*
  SwSectionFrames on this page that are empty (because the follow is
  eventually joined again); e.g. abi3213-1.rtf

So if there's a section frame, assume it's SNAFU and don't assert.

Change-Id: Ibdca2aa39fae123583e5edf5173f80e8b70ef335
Reviewed-on: https://gerrit.libreoffice.org/73333
Tested-by: Jenkins
Reviewed-by: 's avatarMichael Stahl <Michael.Stahl@cib.de>
üst 2c2edfe3
......@@ -319,6 +319,8 @@ void SwFrame::PrepareMake(vcl::RenderContext* pRenderContext)
if (isLast && pFrame->GetUpper() != GetUpper())
{
assert(GetUpper()->Lower() == this
// empty section frames are created all the time...
|| GetUpper()->Lower()->IsSctFrame()
// tab frame/section frame may split multiple times
|| ( SwFlowFrame::CastFlowFrame(pFrame)
&& SwFlowFrame::CastFlowFrame(GetUpper()->Lower())
......@@ -441,6 +443,8 @@ void SwFrame::PrepareCursor()
if (isLast && pFrame->GetUpper() != GetUpper())
{
assert(GetUpper()->Lower() == this
// empty section frames are created all the time...
|| GetUpper()->Lower()->IsSctFrame()
// tab frame/section frame may split multiple times
|| ( SwFlowFrame::CastFlowFrame(pFrame)
&& SwFlowFrame::CastFlowFrame(GetUpper()->Lower())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment