writerfilter/source/filter/ImportFilter.cxx |   19 +++++--------------
 writerfilter/source/filter/WriterFilter.hxx |    3 ++-
 2 files changed, 7 insertions(+), 15 deletions(-)

New commits:
commit 15c2991a6e72bf3b83d846a1155ab8666f4cc424
Author: Miklos Vajna <vmik...@collabora.co.uk>
Date:   Sat Sep 13 18:11:06 2014 +0200

    Use comphelper::SequenceAsHashMap
    
    Change-Id: Ib510ce39e83f87c8a9c7a4f5dce4b29b012ce732

diff --git a/writerfilter/source/filter/ImportFilter.cxx 
b/writerfilter/source/filter/ImportFilter.cxx
index 811501b..3740b3b 100644
--- a/writerfilter/source/filter/ImportFilter.cxx
+++ b/writerfilter/source/filter/ImportFilter.cxx
@@ -133,7 +133,7 @@ sal_Bool WriterFilter::filter( const uno::Sequence< 
beans::PropertyValue >& aDes
         // Adding the saved compat settings
         aGrabBagProperties["CompatSettings"] = uno::makeAny( 
aDomainMapper->GetCompatSettings() );
 
-        putPropertiesToDocumentGrabBag( 
aGrabBagProperties.getAsConstPropertyValueList() );
+        putPropertiesToDocumentGrabBag( aGrabBagProperties );
 
         writerfilter::ooxml::OOXMLStream::Pointer_t  
pVBAProjectStream(writerfilter::ooxml::OOXMLDocumentFactory::createStream( 
pDocStream, writerfilter::ooxml::OOXMLStream::VBAPROJECT ));
         oox::StorageRef xVbaPrjStrg( new ::oox::ole::OleStorage( m_xContext, 
pVBAProjectStream->getDocumentStream(), false ) );
@@ -262,7 +262,7 @@ uno::Sequence< OUString > 
WriterFilter::getSupportedServiceNames(  ) throw (uno:
     return WriterFilter_getSupportedServiceNames();
 }
 
-void WriterFilter::putPropertiesToDocumentGrabBag( const uno::Sequence< 
beans::PropertyValue >& aProperties )
+void WriterFilter::putPropertiesToDocumentGrabBag( const 
comphelper::SequenceAsHashMap& rProperties )
 {
     try
     {
@@ -275,22 +275,13 @@ void WriterFilter::putPropertiesToDocumentGrabBag( const 
uno::Sequence< beans::P
             if( xPropsInfo.is() && xPropsInfo->hasPropertyByName( 
aGrabBagPropName ) )
             {
                 // get existing grab bag
-                uno::Sequence<beans::PropertyValue> aGrabBag;
-                xDocProps->getPropertyValue( aGrabBagPropName ) >>= aGrabBag;
-                sal_Int32 length = aGrabBag.getLength();
-
-                // update grab bag size to contain the new items
-                aGrabBag.realloc( length + aProperties.getLength() );
+                comphelper::SequenceAsHashMap 
aGrabBag(xDocProps->getPropertyValue(aGrabBagPropName));
 
                 // put the new items
-                for( sal_Int32 i=0; i < aProperties.getLength(); ++i )
-                {
-                    aGrabBag[length + i].Name = aProperties[i].Name;
-                    aGrabBag[length + i].Value = aProperties[i].Value;
-                }
+                aGrabBag.update(rProperties);
 
                 // put it back to the document
-                xDocProps->setPropertyValue( aGrabBagPropName, uno::Any( 
aGrabBag ) );
+                xDocProps->setPropertyValue(aGrabBagPropName, 
uno::Any(aGrabBag.getAsConstPropertyValueList()));
             }
         }
     }
diff --git a/writerfilter/source/filter/WriterFilter.hxx 
b/writerfilter/source/filter/WriterFilter.hxx
index 6c2a034..8933f18 100644
--- a/writerfilter/source/filter/WriterFilter.hxx
+++ b/writerfilter/source/filter/WriterFilter.hxx
@@ -27,6 +27,7 @@
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/xml/sax/XDocumentHandler.hpp>
 #include <cppuhelper/implbase5.hxx>
+#include <comphelper/sequenceashashmap.hxx>
 
 /// Common DOC/DOCX filter, calls DocxExportFilter via UNO or does the DOCX 
import.
 class WriterFilter : public cppu::WeakImplHelper5
@@ -76,7 +77,7 @@ public:
         throw (::com::sun::star::uno::RuntimeException, std::exception) 
SAL_OVERRIDE;
 
 private:
-    void putPropertiesToDocumentGrabBag( const 
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& 
aProperties );
+    void putPropertiesToDocumentGrabBag(const comphelper::SequenceAsHashMap& 
rProperties);
 
 };
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to