[Libreoffice-commits] core.git: 2 commits - sw/inc sw/source

Michael Stahl mstahl at redhat.com
Fri Sep 4 02:56:57 PDT 2015


 sw/inc/unocrsrhelper.hxx                 |    8 +++++---
 sw/source/core/txtnode/ndtxt.cxx         |    8 +++++++-
 sw/source/core/unocore/unocrsrhelper.cxx |   14 +++++++-------
 3 files changed, 19 insertions(+), 11 deletions(-)

New commits:
commit 15a439dacf77bfcd7cc47bd1c360945375a24141
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 3 23:11:50 2015 +0200

    sw: replace boost::ptr_map with std::map
    
    Change-Id: I8cf906b7f3f9647a60b20a977ea11c8698438ec2

diff --git a/sw/inc/unocrsrhelper.hxx b/sw/inc/unocrsrhelper.hxx
index 9692639..4dc6ffd 100644
--- a/sw/inc/unocrsrhelper.hxx
+++ b/sw/inc/unocrsrhelper.hxx
@@ -19,8 +19,6 @@
 #ifndef INCLUDED_SW_INC_UNOCRSRHELPER_HXX
 #define INCLUDED_SW_INC_UNOCRSRHELPER_HXX
 
-#include <boost/ptr_container/ptr_map.hpp>
-
 #include <com/sun/star/beans/XPropertyState.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/uno/DeploymentException.hpp>
@@ -29,6 +27,8 @@
 #include <flyenum.hxx>
 #include <pam.hxx>
 
+#include <map>
+
 class SfxItemSet;
 class SfxItemPropertySet;
 struct SfxItemPropertySimpleEntry;
@@ -68,8 +68,10 @@ namespace SwUnoCursorHelper
 {
     class SwAnyMapHelper
     {
+        private:
             //  keep Any's mapped by (WhichId << 16 ) + (MemberId)
-            boost::ptr_map<sal_uInt32,com::sun::star::uno::Any> maMap;
+            std::map<sal_uInt32, com::sun::star::uno::Any> m_Map;
+
         public:
             void    SetValue( sal_uInt16 nWhichId, sal_uInt16 nMemberId, const com::sun::star::uno::Any& rAny );
             bool    FillValue( sal_uInt16 nWhichId, sal_uInt16 nMemberId, const com::sun::star::uno::Any*& pAny );
diff --git a/sw/source/core/unocore/unocrsrhelper.cxx b/sw/source/core/unocore/unocrsrhelper.cxx
index 983b5ed..c6dcb50 100644
--- a/sw/source/core/unocore/unocrsrhelper.cxx
+++ b/sw/source/core/unocore/unocrsrhelper.cxx
@@ -1402,21 +1402,21 @@ void makeTableCellRedline( SwTableBox& rTableBox,
 void SwAnyMapHelper::SetValue( sal_uInt16 nWhichId, sal_uInt16 nMemberId, const uno::Any& rAny )
 {
     sal_uInt32 nKey = (nWhichId << 16) + nMemberId;
-    auto aIt = maMap.find( nKey );
-    if( aIt != maMap.end() )
-        *(aIt->second) = rAny;
+    auto aIt = m_Map.find( nKey );
+    if (aIt != m_Map.end())
+        aIt->second = rAny;
     else
-        maMap.insert( nKey, new uno::Any(rAny) );
+        m_Map.insert(std::make_pair(nKey, rAny));
 }
 
 bool    SwAnyMapHelper::FillValue( sal_uInt16 nWhichId, sal_uInt16 nMemberId, const uno::Any*& pAny )
 {
     bool bRet = false;
     sal_uInt32 nKey = (nWhichId << 16) + nMemberId;
-    auto aIt = maMap.find( nKey );
-    if( aIt != maMap.end() )
+    auto aIt = m_Map.find( nKey );
+    if (aIt != m_Map.end())
     {
-        pAny = aIt->second;
+        pAny = & aIt->second;
         bRet = true;
     }
     return bRet;
commit 9b5d96d7e074dd9ea26f835351ac6d36fe01b086
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 3 22:25:47 2015 +0200

    sw: avoid asserts from RsidOnlyAutoFormats check
    
    This happens with a document that has a header or footer that is not
    displayed after loading, for example 1-page document with separate
    left/right or first page header.
    
    The SwTextNode::FileLoadedInitHints() is not called for these headers
    because they are not visible so MakeFrm() is not called.
    
    If they are not visible the RSID related flags don't matter.
    
    Change-Id: Ie3bd1ce3bc0ac2ff1c429386149294e0c8fd3cb6

diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index d8e8698..3317369 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -102,8 +102,12 @@ TYPEINIT1( SwTextNode, SwContentNode )
 #define CHECK_SWPHINTS(pNd)  { if( pNd->GetpSwpHints() && \
                                    !pNd->GetDoc()->IsInReading() ) \
                                   pNd->GetpSwpHints()->Check(true); }
+#define CHECK_SWPHINTS_IF_FRM(pNd)  { if( pNd->GetpSwpHints() && \
+                                   !pNd->GetDoc()->IsInReading() ) \
+    pNd->GetpSwpHints()->Check(getLayoutFrm(nullptr, nullptr, nullptr, false) != nullptr); }
 #else
 #define CHECK_SWPHINTS(pNd)
+#define CHECK_SWPHINTS_IF_FRM(pNd)
 #endif
 
 SwTextNode *SwNodes::MakeTextNode( const SwNodeIndex & rWhere,
@@ -1643,6 +1647,8 @@ void SwTextNode::CopyText( SwTextNode *const pDest,
                       sal_Int32 nLen,
                       const bool bForceCopyOfAllAttrs )
 {
+    CHECK_SWPHINTS_IF_FRM(this);
+    CHECK_SWPHINTS(pDest);
     sal_Int32 nTextStartIdx = rStart.GetIndex();
     sal_Int32 nDestStart = rDestStart.GetIndex();      // alte Pos merken
 
@@ -1896,7 +1902,7 @@ void SwTextNode::CopyText( SwTextNode *const pDest,
         }
     }
 
-    CHECK_SWPHINTS(this);
+    CHECK_SWPHINTS_IF_FRM(this);
     CHECK_SWPHINTS(pDest);
 }
 


More information about the Libreoffice-commits mailing list