summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sw/source/core/layout/frmtool.cxx12
1 files changed, 9 insertions, 3 deletions
diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index 2523582a8e48..158ac489ecb1 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -1190,18 +1190,24 @@ void AppendAllObjs(const SwFrameFormats* pTable, const SwFrame* pSib)
if(!isConnected)
{
pFormat->MakeFrames();
- pFirstRequeued = nullptr;
+ pFormat->CallSwClientNotify(sw::GetObjectConnectedHint(isConnected, pRoot));
}
- else
+ // do this *before* push_back! the circular_buffer can be "full"!
+ vFormatsToConnect.pop_front();
+ if (!isConnected)
{
if(pFirstRequeued == pFormat)
// If nothing happens anymore we can stop.
break;
if(!pFirstRequeued)
pFirstRequeued = pFormat;
+ assert(!vFormatsToConnect.full());
vFormatsToConnect.push_back(pFormat);
}
- vFormatsToConnect.pop_front();
+ else
+ {
+ pFirstRequeued = nullptr;
+ }
}
}