* old-boost2.patch OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=817
80 lines
2.9 KiB
Diff
80 lines
2.9 KiB
Diff
diff --git a/sw/source/core/inc/frame.hxx b/sw/source/core/inc/frame.hxx
|
|
index 6e0d653690c4..52a68b3b995d 100644
|
|
--- a/sw/source/core/inc/frame.hxx
|
|
+++ b/sw/source/core/inc/frame.hxx
|
|
@@ -1245,11 +1245,15 @@ public:
|
|
m_pForbidFrame->ForbidDelete();
|
|
}
|
|
|
|
+ SwFrameDeleteGuard(const SwFrameDeleteGuard&) =delete;
|
|
+
|
|
~SwFrameDeleteGuard()
|
|
{
|
|
if (m_pForbidFrame)
|
|
m_pForbidFrame->AllowDelete();
|
|
}
|
|
+
|
|
+ SwFrameDeleteGuard& operator=(const SwFrameDeleteGuard&) =delete;
|
|
};
|
|
|
|
typedef long (SwFrame:: *SwFrameGet)() const;
|
|
diff --git a/sw/source/core/layout/calcmove.cxx b/sw/source/core/layout/calcmove.cxx
|
|
index 3502450c2a47..cb956d8f916c 100644
|
|
--- a/sw/source/core/layout/calcmove.cxx
|
|
+++ b/sw/source/core/layout/calcmove.cxx
|
|
@@ -404,14 +404,19 @@ void SwFrame::PrepareCursor()
|
|
const bool bTab = IsTabFrame();
|
|
bool bNoSect = IsInSct();
|
|
|
|
+#if BOOST_VERSION < 105600
|
|
+ std::list<FlowFrameJoinLockGuard> tabGuard;
|
|
+ std::list<SwFrameDeleteGuard> rowGuard;
|
|
+#else
|
|
boost::optional<FlowFrameJoinLockGuard> tabGuard;
|
|
boost::optional<SwFrameDeleteGuard> rowGuard;
|
|
+#endif
|
|
SwFlowFrame* pThis = bCnt ? static_cast<SwContentFrame*>(this) : nullptr;
|
|
|
|
if ( bTab )
|
|
{
|
|
#if BOOST_VERSION < 105600
|
|
- tabGuard.reset(static_cast<SwTabFrame*>(this)); // tdf#125741
|
|
+ tabGuard.emplace_back(static_cast<SwTabFrame*>(this)); // tdf#125741
|
|
#else
|
|
tabGuard.emplace(static_cast<SwTabFrame*>(this)); // tdf#125741
|
|
#endif
|
|
@@ -420,7 +425,7 @@ void SwFrame::PrepareCursor()
|
|
else if (IsRowFrame())
|
|
{
|
|
#if BOOST_VERSION < 105600
|
|
- rowGuard.reset(SwFrameDeleteGuard(this)); // tdf#125741 keep this alive
|
|
+ rowGuard.emplace_back(this); // tdf#125741 keep this alive
|
|
#else
|
|
rowGuard.emplace(this); // tdf#125741 keep this alive
|
|
#endif
|
|
diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx
|
|
index ea9df3300d11..c7cfd3006f06 100644
|
|
--- a/sw/source/core/layout/flowfrm.cxx
|
|
+++ b/sw/source/core/layout/flowfrm.cxx
|
|
@@ -2523,7 +2523,11 @@ bool SwFlowFrame::MoveBwd( bool &rbReformat )
|
|
|
|
{
|
|
auto const pOld = m_rThis.GetUpper();
|
|
+#if BOOST_VERSION < 105600
|
|
+ std::list<SwFrameDeleteGuard> g;
|
|
+#else
|
|
::boost::optional<SwFrameDeleteGuard> g;
|
|
+#endif
|
|
if (m_rThis.GetUpper()->IsCellFrame())
|
|
{
|
|
// note: IsFollowFlowRow() is never set for new-style tables
|
|
@@ -2534,7 +2538,7 @@ bool SwFlowFrame::MoveBwd( bool &rbReformat )
|
|
{
|
|
// lock follow-flow-row (similar to sections above)
|
|
#if BOOST_VERSION < 105600
|
|
- g.reset(SwFrameDeleteGuard(m_rThis.GetUpper()->GetUpper()));
|
|
+ g.emplace_back(m_rThis.GetUpper()->GetUpper());
|
|
#else
|
|
g.emplace(m_rThis.GetUpper()->GetUpper());
|
|
#endif
|