diff --git a/libreoffice.changes b/libreoffice.changes index 5fe7f9f..6007bdf 100644 --- a/libreoffice.changes +++ b/libreoffice.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Aug 23 07:36:16 UTC 2019 - Tomáš Chvátal + +- Add one more patch for the old boost: + * old-boost2.patch + ------------------------------------------------------------------- Tue Aug 20 10:27:08 UTC 2019 - Tomáš Chvátal diff --git a/libreoffice.spec b/libreoffice.spec index 5f42f97..6e333c3 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -104,6 +104,7 @@ Patch4: gcc.patch Patch5: mdds-1-5.patch Patch6: 0001-Fix-buidling-with-older-boost.patch Patch7: old-boost.patch +Patch8: old-boost2.patch # try to save space by using hardlinks Patch990: install-with-hardlinks.diff # save time by relying on rpm check rather than doing stupid find+grep @@ -991,6 +992,7 @@ Provides %{langname} translations and additional resources (help files, etc.) fo %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 %patch990 -p1 %patch991 -p1 diff --git a/old-boost2.patch b/old-boost2.patch new file mode 100644 index 0000000..7d436dd --- /dev/null +++ b/old-boost2.patch @@ -0,0 +1,79 @@ +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 tabGuard; ++ std::list rowGuard; ++#else + boost::optional tabGuard; + boost::optional rowGuard; ++#endif + SwFlowFrame* pThis = bCnt ? static_cast(this) : nullptr; + + if ( bTab ) + { + #if BOOST_VERSION < 105600 +- tabGuard.reset(static_cast(this)); // tdf#125741 ++ tabGuard.emplace_back(static_cast(this)); // tdf#125741 + #else + tabGuard.emplace(static_cast(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 g; ++#else + ::boost::optional 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