configure.ac | 3 ++ solenv/gdb/libreoffice/sw.py | 2 - sw/inc/pch/precompiled_sw.hxx | 1 sw/source/core/doc/docsort.cxx | 14 ++++----- sw/source/core/inc/blink.hxx | 17 +++++++++-- sw/source/core/text/blink.cxx | 41 +++++++++++++--------------- sw/source/filter/html/htmlatr.cxx | 54 ++++++++++++++++++------------------- sw/source/filter/html/wrthtml.cxx | 8 ++--- sw/source/filter/html/wrthtml.hxx | 18 +++++++++--- sw/source/ui/dialog/uiregionsw.cxx | 10 ++++-- sw/source/uibase/inc/regionsw.hxx | 7 ++-- 11 files changed, 99 insertions(+), 76 deletions(-)
New commits: commit bd50d025fe5acf974f690e3388b8a429b8443139 Author: Michael Stahl <[email protected]> Date: Mon Jul 27 15:49:49 2015 +0200 sw: replace boost::ptr_multiset with std::multiset Change-Id: I0b1743bd23844c46572af24e8fbdd0a61676d840 diff --git a/sw/inc/pch/precompiled_sw.hxx b/sw/inc/pch/precompiled_sw.hxx index 1540a5e..e740d22 100644 --- a/sw/inc/pch/precompiled_sw.hxx +++ b/sw/inc/pch/precompiled_sw.hxx @@ -48,7 +48,6 @@ #include <boost/noncopyable.hpp> #include <boost/numeric/conversion/cast.hpp> #include <boost/optional.hpp> -#include <boost/ptr_container/ptr_set.hpp> #include <memory> #include <boost/scoped_ptr.hpp> #include <boost/shared_ptr.hpp> diff --git a/sw/source/core/doc/docsort.cxx b/sw/source/core/doc/docsort.cxx index a4fdcaa..a7e5f41 100644 --- a/sw/source/core/doc/docsort.cxx +++ b/sw/source/core/doc/docsort.cxx @@ -17,8 +17,6 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <boost/ptr_container/ptr_set.hpp> - #include <hintids.hxx> #include <rtl/math.hxx> #include <unotools/collatorwrapper.hxx> @@ -50,6 +48,8 @@ #include <node2lay.hxx> #include <unochart.hxx> +#include <set> + using namespace ::com::sun::star::lang; using namespace ::com::sun::star; @@ -63,8 +63,8 @@ LocaleDataWrapper* SwSortElement::pLclData = 0; // List of all sorted elements -typedef ::boost::ptr_multiset<SwSortTextElement> SwSortTextElements; -typedef ::boost::ptr_multiset<SwSortBoxElement> SwSortBoxElements; +typedef ::std::multiset<SwSortTextElement> SwSortTextElements; +typedef ::std::multiset<SwSortBoxElement> SwSortBoxElements; /// Construct a SortElement for the Sort void SwSortElement::Init( SwDoc* pD, const SwSortOptions& rOpt, @@ -379,8 +379,7 @@ bool SwDoc::SortText(const SwPaM& rPaM, const SwSortOptions& rOpt) while( aStart <= pEnd->nNode ) { // Iterate over a selected range - SwSortTextElement* pSE = new SwSortTextElement( aStart ); - aSortSet.insert(pSE); + aSortSet.insert(SwSortTextElement(aStart)); ++aStart; } @@ -562,8 +561,7 @@ bool SwDoc::SortTable(const SwSelBoxes& rBoxes, const SwSortOptions& rOpt) // When sorting, do not include the first row if the HeaderLine is repeated for( sal_uInt16 i = static_cast<sal_uInt16>(nStart); i < nCount; ++i) { - SwSortBoxElement* pEle = new SwSortBoxElement( i ); - aSortList.insert(pEle); + aSortList.insert(SwSortBoxElement(i)); } // Move after Sorting commit abf56d46be1b11973fce1fa48e40b82820d66e58 Author: Michael Stahl <[email protected]> Date: Mon Jul 27 15:14:49 2015 +0200 sw: replace boost::ptr_set with std::map<std::unique_ptr> Change-Id: I2af80c8223ec3074058c013be7302ebf8edad95c diff --git a/sw/source/ui/dialog/uiregionsw.cxx b/sw/source/ui/dialog/uiregionsw.cxx index 711462e..601be95 100644 --- a/sw/source/ui/dialog/uiregionsw.cxx +++ b/sw/source/ui/dialog/uiregionsw.cxx @@ -142,7 +142,7 @@ private: SwFormatNoBalancedColumns m_Balance; SvxFrameDirectionItem m_FrmDirItem; SvxLRSpaceItem m_LRSpaceItem; - size_t m_nArrPos; + const size_t m_nArrPos; // shows, if maybe textcontent is in the region bool m_bContent : 1; // for multiselection, mark at first, then work with TreeListBox! @@ -816,9 +816,10 @@ IMPL_LINK_NOARG(SwEditRegionDlg, OkHdl) pEntry = m_pTree->Next( pEntry ); } - for (SectReprArr::reverse_iterator aI = aSectReprArr.rbegin(), aEnd = aSectReprArr.rend(); aI != aEnd; ++aI) + for (SectReprs_t::reverse_iterator it = m_SectReprs.rbegin(), aEnd = m_SectReprs.rend(); it != aEnd; ++it) { - SwSectionFormat* pFormat = aOrigArray[ aI->GetArrPos() ]; + assert(it->first == it->second->GetArrPos()); + SwSectionFormat* pFormat = aOrigArray[ it->second->GetArrPos() ]; const size_t nNewPos = rDocFormats.GetPos( pFormat ); if( SIZE_MAX != nNewPos ) rSh.DelSectionFormat( nNewPos ); @@ -930,7 +931,8 @@ IMPL_LINK_NOARG(SwEditRegionDlg, ChangeDismissHdl) bool bRestart = false; if(pSectRepr->IsSelected()) { - aSectReprArr.insert( pSectRepr ); + m_SectReprs.insert(std::make_pair(pSectRepr->GetArrPos(), + std::unique_ptr<SectRepr>(pSectRepr))); while( (pChild = m_pTree->FirstChild(pEntry) )!= 0 ) { // because of the repositioning we have to start at the beginning again diff --git a/sw/source/uibase/inc/regionsw.hxx b/sw/source/uibase/inc/regionsw.hxx index d74e06a..7b4d1de 100644 --- a/sw/source/uibase/inc/regionsw.hxx +++ b/sw/source/uibase/inc/regionsw.hxx @@ -44,7 +44,8 @@ #include <svx/paraprev.hxx> #include <editeng/lrspitem.hxx> -#include <boost/ptr_container/ptr_set.hpp> +#include <memory> +#include <map> class SwWrtShell; @@ -56,7 +57,7 @@ namespace sfx2 // dialog "edit regions" class SectRepr; -typedef boost::ptr_set<SectRepr> SectReprArr; +typedef std::map<size_t, std::unique_ptr<SectRepr>> SectReprs_t; class SwEditRegionDlg : public SfxModalDialog { @@ -91,7 +92,7 @@ class SwEditRegionDlg : public SfxModalDialog ImageList aImageIL; SwWrtShell& rSh; - SectReprArr aSectReprArr; + SectReprs_t m_SectReprs; const SwSection* pCurrSect; sfx2::DocumentInserter* m_pDocInserter; VclPtr<vcl::Window> m_pOldDefDlgParent; commit 27825a355edc79ac62f16b3ea8554ea834bed514 Author: Michael Stahl <[email protected]> Date: Mon Jul 27 14:48:58 2015 +0200 sw: replace boost::ptr_set with std::set<std::unique_ptr> Change-Id: Ie4854f8b0d52771a609aee7ba4620c9308424d64 diff --git a/sw/source/filter/html/htmlatr.cxx b/sw/source/filter/html/htmlatr.cxx index 489c617..776d472 100644 --- a/sw/source/filter/html/htmlatr.cxx +++ b/sw/source/filter/html/htmlatr.cxx @@ -523,12 +523,12 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat, } // Jetzt holen wir das Token und ggf. die Klasse - SwHTMLFormatInfo aFormatInfo( &rFormat ); + std::unique_ptr<SwHTMLFormatInfo> pTmpInfo(new SwHTMLFormatInfo(&rFormat)); SwHTMLFormatInfo *pFormatInfo; - SwHTMLFormatInfos::iterator it = rHWrt.aTextCollInfos.find( aFormatInfo ); - if( it != rHWrt.aTextCollInfos.end() ) + SwHTMLFormatInfos::iterator it = rHWrt.m_TextCollInfos.find( pTmpInfo ); + if (it != rHWrt.m_TextCollInfos.end()) { - pFormatInfo = &*it; + pFormatInfo = it->get(); } else { @@ -536,7 +536,7 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat, rHWrt.bCfgOutStyles, rHWrt.eLang, rHWrt.nCSS1Script, false ); - rHWrt.aTextCollInfos.insert( pFormatInfo ); + rHWrt.m_TextCollInfos.insert(std::unique_ptr<SwHTMLFormatInfo>(pFormatInfo)); if( rHWrt.aScriptParaStyles.count( rFormat.GetName() ) ) pFormatInfo->bScriptDependent = true; } @@ -1590,17 +1590,17 @@ const SwHTMLFormatInfo *HTMLEndPosLst::GetFormatInfo( const SwFormat& rFormat, SwHTMLFormatInfos& rFormatInfos ) { SwHTMLFormatInfo *pFormatInfo; - const SwHTMLFormatInfo aFormatInfo( &rFormat ); - SwHTMLFormatInfos::iterator it = rFormatInfos.find( aFormatInfo ); - if( it != rFormatInfos.end() ) + std::unique_ptr<SwHTMLFormatInfo> pTmpInfo(new SwHTMLFormatInfo(&rFormat)); + SwHTMLFormatInfos::iterator it = rFormatInfos.find( pTmpInfo ); + if (it != rFormatInfos.end()) { - pFormatInfo = &*it; + pFormatInfo = it->get(); } else { pFormatInfo = new SwHTMLFormatInfo( &rFormat, pDoc, pTemplate, bOutStyles ); - rFormatInfos.insert( pFormatInfo ); + rFormatInfos.insert(std::unique_ptr<SwHTMLFormatInfo>(pFormatInfo)); if ( rScriptTextStyles.count( rFormat.GetName() ) ) pFormatInfo->bScriptDependent = true; } @@ -2309,7 +2309,7 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) if( aFormatInfo.pItemSet ) { aEndPosLst.Insert( *aFormatInfo.pItemSet, 0, nEnd + nOffset, - rHTMLWrt.aChrFormatInfos, false, true ); + rHTMLWrt.m_CharFormatInfos, false, true ); } if( !aOutlineText.isEmpty() || rHTMLWrt.pFormatFootnote ) @@ -2368,14 +2368,14 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) if( rHTMLWrt.bWriteAll ) aEndPosLst.Insert( pHt->GetAttr(), nHtStt + nOffset, nHtEnd + nOffset, - rHTMLWrt.aChrFormatInfos ); + rHTMLWrt.m_CharFormatInfos ); else { sal_Int32 nTmpStt = nHtStt < nStrPos ? nStrPos : nHtStt; sal_Int32 nTmpEnd = nHtEnd < nEnd ? nHtEnd : nEnd; aEndPosLst.Insert( pHt->GetAttr(), nTmpStt + nOffset, nTmpEnd + nOffset, - rHTMLWrt.aChrFormatInfos ); + rHTMLWrt.m_CharFormatInfos ); } continue; // aber nicht ausgeben, das erfolgt spaeter !! @@ -2423,7 +2423,7 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) // Bereich aufspannen werden ignoriert aEndPosLst.Insert( pHt->GetAttr(), nStrPos + nOffset, *pHt->End() + nOffset, - rHTMLWrt.aChrFormatInfos ); + rHTMLWrt.m_CharFormatInfos ); } } else @@ -2460,7 +2460,7 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) if( RES_DRAWFRMFMT == pFrameFormat->Which() ) aEndPosLst.Insert( *static_cast<const SwDrawFrameFormat *>(pFrameFormat), nStrPos + nOffset, - rHTMLWrt.aChrFormatInfos ); + rHTMLWrt.m_CharFormatInfos ); } aEndPosLst.OutEndAttrs( rHTMLWrt, nStrPos + nOffset, &aContext ); @@ -2954,22 +2954,22 @@ Writer& OutHTML_INetFormat( Writer& rWrt, const SwFormatINetFormat& rINetFormat, { const SwCharFormat* pFormat = rWrt.pDoc->getIDocumentStylePoolAccess().GetCharFormatFromPool( RES_POOLCHR_INET_NORMAL ); - SwHTMLFormatInfo aFormatInfo( pFormat ); - SwHTMLFormatInfos::const_iterator it = rHTMLWrt.aChrFormatInfos.find( aFormatInfo ); - if( it != rHTMLWrt.aChrFormatInfos.end() ) + std::unique_ptr<SwHTMLFormatInfo> pFormatInfo(new SwHTMLFormatInfo(pFormat)); + auto const it = rHTMLWrt.m_CharFormatInfos.find( pFormatInfo ); + if (it != rHTMLWrt.m_CharFormatInfos.end()) { - bScriptDependent = it->bScriptDependent; + bScriptDependent = (*it)->bScriptDependent; } } if( !bScriptDependent ) { const SwCharFormat* pFormat = rWrt.pDoc->getIDocumentStylePoolAccess().GetCharFormatFromPool( RES_POOLCHR_INET_VISIT ); - SwHTMLFormatInfo aFormatInfo( pFormat ); - SwHTMLFormatInfos::const_iterator it = rHTMLWrt.aChrFormatInfos.find( aFormatInfo ); - if( it != rHTMLWrt.aChrFormatInfos.end() ) + std::unique_ptr<SwHTMLFormatInfo> pFormatInfo(new SwHTMLFormatInfo(pFormat)); + auto const it = rHTMLWrt.m_CharFormatInfos.find( pFormatInfo ); + if (it != rHTMLWrt.m_CharFormatInfos.end()) { - bScriptDependent = it->bScriptDependent; + bScriptDependent = (*it)->bScriptDependent; } } @@ -3113,12 +3113,12 @@ static Writer& OutHTML_SwTextCharFormat( Writer& rWrt, const SfxPoolItem& rHt ) return rWrt; } - SwHTMLFormatInfo aFormatInfo( pFormat ); - SwHTMLFormatInfos::const_iterator it = rHTMLWrt.aChrFormatInfos.find( aFormatInfo ); - if( it == rHTMLWrt.aChrFormatInfos.end()) + std::unique_ptr<SwHTMLFormatInfo> pTmpInfo(new SwHTMLFormatInfo(pFormat)); + SwHTMLFormatInfos::const_iterator it = rHTMLWrt.m_CharFormatInfos.find(pTmpInfo); + if (it == rHTMLWrt.m_CharFormatInfos.end()) return rWrt; - const SwHTMLFormatInfo *pFormatInfo = &*it; + const SwHTMLFormatInfo *pFormatInfo = it->get(); OSL_ENSURE( pFormatInfo, "Wieso gint es keine Infos ueber die Zeichenvorlage?" ); if( rHTMLWrt.bTagOn ) diff --git a/sw/source/filter/html/wrthtml.cxx b/sw/source/filter/html/wrthtml.cxx index 12ef030..1502441 100644 --- a/sw/source/filter/html/wrthtml.cxx +++ b/sw/source/filter/html/wrthtml.cxx @@ -448,11 +448,11 @@ sal_uLong SwHTMLWriter::WriteStream() aHTMLControls.DeleteAndDestroyAll(); - if( !aChrFormatInfos.empty() ) - aChrFormatInfos.clear(); + if (!m_CharFormatInfos.empty()) + m_CharFormatInfos.clear(); - if( !aTextCollInfos.empty() ) - aTextCollInfos.clear(); + if (!m_TextCollInfos.empty()) + m_TextCollInfos.clear(); if(!aImgMapNames.empty()) aImgMapNames.clear(); diff --git a/sw/source/filter/html/wrthtml.hxx b/sw/source/filter/html/wrthtml.hxx index 53955f5..8dad0b5 100644 --- a/sw/source/filter/html/wrthtml.hxx +++ b/sw/source/filter/html/wrthtml.hxx @@ -20,8 +20,9 @@ #define INCLUDED_SW_SOURCE_FILTER_HTML_WRTHTML_HXX #include <boost/ptr_container/ptr_vector.hpp> -#include <boost/ptr_container/ptr_set.hpp> +#include <memory> #include <vector> +#include <set> #include <com/sun/star/container/XIndexContainer.hpp> #include <com/sun/star/form/XForm.hpp> @@ -263,7 +264,16 @@ struct SwHTMLFormatInfo }; -typedef boost::ptr_set<SwHTMLFormatInfo> SwHTMLFormatInfos; +struct SwHTMLFormatInfo_Less +{ + bool operator()(std::unique_ptr<SwHTMLFormatInfo> const& lhs, + std::unique_ptr<SwHTMLFormatInfo> const& rhs) + { + return (*lhs) < (*rhs); + } +}; + +typedef std::set<std::unique_ptr<SwHTMLFormatInfo>, SwHTMLFormatInfo_Less> SwHTMLFormatInfos; class IDocumentStylePoolAccess; @@ -296,8 +306,8 @@ public: std::vector<OUString> aOutlineMarks; std::vector<sal_uInt32> aOutlineMarkPoss; HTMLControls aHTMLControls; // die zu schreibenden Forms - SwHTMLFormatInfos aChrFormatInfos; - SwHTMLFormatInfos aTextCollInfos; + SwHTMLFormatInfos m_CharFormatInfos; + SwHTMLFormatInfos m_TextCollInfos; INetFormats aINetFormats; // die "offenen" INet-Attribute SwHTMLTextFootnotes *pFootEndNotes; commit 6be72cc21cd59e6cb3c4dcda9416d1ab362f0a14 Author: Michael Stahl <[email protected]> Date: Mon Jul 27 14:15:15 2015 +0200 configure: make --enable-selective-debuginfo less errorprone Change-Id: I6b7379323a86242b42a8a5137807c535bf1d7c46 diff --git a/configure.ac b/configure.ac index 2d36f0c..8d3b906 100644 --- a/configure.ac +++ b/configure.ac @@ -3919,6 +3919,9 @@ ENABLE_DEBUGINFO_FOR= if test -n "$ENABLE_DEBUG"; then AC_MSG_CHECKING([whether to use selective debuginfo]) if test -n "$enable_selective_debuginfo" -a "$enable_selective_debuginfo" != "no"; then + if test "$enable_selective_debuginfo" = "yes"; then + AC_MSG_ERROR([--enable-selective-debuginfo requires a parameter]) + fi ENABLE_DEBUGINFO_FOR="$enable_selective_debuginfo" AC_MSG_RESULT([for "$enable_selective_debuginfo"]) else commit e19d1afd7e6ef75b994e436aff57bd94efbb5acb Author: Michael Stahl <[email protected]> Date: Mon Jul 27 13:45:43 2015 +0200 sw: replace boost::ptr_set with std::set<std::unique_ptr> Change-Id: I8f08074cfd9515d3ded629427745c113f8c80dbc diff --git a/sw/source/core/inc/blink.hxx b/sw/source/core/inc/blink.hxx index 2c3a74e..6c14225 100644 --- a/sw/source/core/inc/blink.hxx +++ b/sw/source/core/inc/blink.hxx @@ -26,7 +26,9 @@ class SwTextFrm; #include <vcl/timer.hxx> #include <tools/gen.hxx> -#include <boost/ptr_container/ptr_set.hpp> + +#include <set> +#include <memory> class SwBlinkPortion { @@ -61,11 +63,20 @@ public: { return reinterpret_cast<sal_IntPtr>(pPor) == reinterpret_cast<sal_IntPtr>(rBlinkPortion.pPor); } }; -class SwBlinkList : public boost::ptr_set<SwBlinkPortion> {}; +struct SwBlinkPortion_Less +{ + bool operator()(std::unique_ptr<SwBlinkPortion> const& lhs, + std::unique_ptr<SwBlinkPortion> const& rhs) + { + return (*lhs) < (*rhs); + } +}; + +typedef std::set<std::unique_ptr<SwBlinkPortion>, SwBlinkPortion_Less> SwBlinkSet; class SwBlink { - SwBlinkList aList; + SwBlinkSet m_List; AutoTimer aTimer; bool bVisible; diff --git a/sw/source/core/text/blink.cxx b/sw/source/core/text/blink.cxx index db06123..db11349 100644 --- a/sw/source/core/text/blink.cxx +++ b/sw/source/core/text/blink.cxx @@ -62,12 +62,12 @@ IMPL_LINK_NOARG_TYPED(SwBlink, Blinker, Timer *, void) aTimer.SetTimeout( BLINK_ON_TIME ); else aTimer.SetTimeout( BLINK_OFF_TIME ); - if( !aList.empty() ) + if (!m_List.empty()) { - for( SwBlinkList::iterator it = aList.begin(); it != aList.end(); ) + for (SwBlinkSet::iterator it = m_List.begin(); it != m_List.end(); ) { - const SwBlinkPortion* pTmp = &*it; + const SwBlinkPortion* pTmp = it->get(); if( pTmp->GetRootFrm() && pTmp->GetRootFrm()->GetCurrShell() ) { @@ -108,7 +108,7 @@ IMPL_LINK_NOARG_TYPED(SwBlink, Blinker, Timer *, void) ->GetCurrShell()->InvalidateWindows( aRefresh ); } else // Portions without a shell can be removed from the list - it = aList.erase(it); + it = m_List.erase(it); } } else // If the list is empty, the timer can be stopped @@ -118,19 +118,18 @@ IMPL_LINK_NOARG_TYPED(SwBlink, Blinker, Timer *, void) void SwBlink::Insert( const Point& rPoint, const SwLinePortion* pPor, const SwTextFrm *pTextFrm, sal_uInt16 nDir ) { - SwBlinkPortion *pBlinkPor = new SwBlinkPortion( pPor, nDir ); + std::unique_ptr<SwBlinkPortion> pBlinkPor(new SwBlinkPortion(pPor, nDir)); - SwBlinkList::iterator it = aList.find( *pBlinkPor ); - if( it != aList.end() ) + SwBlinkSet::iterator it = m_List.find( pBlinkPor ); + if (it != m_List.end()) { - (*it).SetPos( rPoint ); - delete pBlinkPor; + (*it)->SetPos( rPoint ); } else { pBlinkPor->SetPos( rPoint ); pBlinkPor->SetRootFrm( pTextFrm->getRootFrm() ); - aList.insert( pBlinkPor ); + m_List.insert(std::move(pBlinkPor)); pTextFrm->SetBlinkPor(); if( pPor->IsLayPortion() || pPor->IsParaPortion() ) const_cast<SwLineLayout*>(static_cast<const SwLineLayout*>(pPor))->SetBlinking(); @@ -144,13 +143,13 @@ void SwBlink::Replace( const SwLinePortion* pOld, const SwLinePortion* pNew ) { // setting direction to 0 because direction does not matter // for this operation - SwBlinkPortion aBlink( pOld, 0 ); - SwBlinkList::iterator it = aList.find( aBlink ); - if( it != aList.end() ) + std::unique_ptr<SwBlinkPortion> pBlinkPortion(new SwBlinkPortion(pOld, 0)); + SwBlinkSet::iterator it = m_List.find( pBlinkPortion ); + if (it != m_List.end()) { - SwBlinkPortion* aTmp = new SwBlinkPortion( &*it, pNew ); - aList.erase( it ); - aList.insert( aTmp ); + std::unique_ptr<SwBlinkPortion> pTmp(new SwBlinkPortion(it->get(), pNew)); + m_List.erase( it ); + m_List.insert(std::move(pTmp)); } } @@ -158,16 +157,16 @@ void SwBlink::Delete( const SwLinePortion* pPor ) { // setting direction to 0 because direction does not matter // for this operation - SwBlinkPortion aBlink( pPor, 0 ); - aList.erase( aBlink ); + std::unique_ptr<SwBlinkPortion> pBlinkPortion(new SwBlinkPortion(pPor, 0)); + m_List.erase( pBlinkPortion ); } void SwBlink::FrmDelete( const SwRootFrm* pRoot ) { - for( SwBlinkList::iterator it = aList.begin(); it != aList.end(); ) + for (SwBlinkSet::iterator it = m_List.begin(); it != m_List.end(); ) { - if( pRoot == (*it).GetRootFrm() ) - aList.erase( it++ ); + if (pRoot == (*it)->GetRootFrm()) + m_List.erase( it++ ); else ++it; } commit f29ac1d91b12ab2f55d7ab7afce62238a59b8cba Author: Michael Stahl <[email protected]> Date: Fri Jul 24 18:23:22 2015 +0200 gdb pretty printer for SwNodes fails on Python 3 due to "unicode" Change-Id: I8e4983a91d4f97a2a20fbeed89d4e0f186c35fad diff --git a/solenv/gdb/libreoffice/sw.py b/solenv/gdb/libreoffice/sw.py index 2c5874a..ddbbb42 100644 --- a/solenv/gdb/libreoffice/sw.py +++ b/solenv/gdb/libreoffice/sw.py @@ -213,7 +213,7 @@ class BigPtrArrayPrinter(object): # accessing this is completely non-obvious... # also, node.dynamic_cast(node.dynamic_type) is null? value = " TextNode " + \ - unicode(node.cast(node.dynamic_type).dereference()['m_Text']) + six.text_type(node.cast(node.dynamic_type).dereference()['m_Text']) elif str(node.dynamic_type.target()) == "SwOLENode": value = " OLENode " elif str(node.dynamic_type.target()) == "SwGrfNode": _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
