include/xmloff/prhdlfac.hxx | 20 +++++++++++--------- sc/source/filter/xml/xmlstyle.hxx | 1 + sw/source/filter/xml/xmlexpit.cxx | 1 + sw/source/filter/xml/xmlimpit.cxx | 1 + xmloff/source/draw/animationexport.cxx | 1 + xmloff/source/draw/animationimport.cxx | 1 + xmloff/source/style/prhdlfac.cxx | 33 +++++++++++++++++++++++---------- 7 files changed, 39 insertions(+), 19 deletions(-)
New commits: commit 52a36fb30aef51fc1cecde4cf2ac9c43a5c88c09 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri Jul 25 15:32:29 2014 -0400 pImplize XMLPropertyHandlerFactory. Change-Id: Iff524c9065e9374b39db998e3860704555130995 diff --git a/include/xmloff/prhdlfac.hxx b/include/xmloff/prhdlfac.hxx index aca1469..1b1822b 100644 --- a/include/xmloff/prhdlfac.hxx +++ b/include/xmloff/prhdlfac.hxx @@ -20,13 +20,12 @@ #ifndef INCLUDED_XMLOFF_PRHDLFAC_HXX #define INCLUDED_XMLOFF_PRHDLFAC_HXX -#include <sal/config.h> #include <xmloff/dllapi.h> #include <sal/types.h> -#include <map> #include <salhelper/simplereferenceobject.hxx> -#include <xmloff/xmlprhdl.hxx> + +class XMLPropertyHandler; /** This class is a base-class to create XMLPropertyHandler. @@ -39,7 +38,14 @@ */ class XMLOFF_DLLPUBLIC XMLPropertyHandlerFactory : public salhelper::SimpleReferenceObject { + struct Impl; + Impl* mpImpl; + + XMLPropertyHandlerFactory( const XMLPropertyHandlerFactory& ); // disabled + XMLPropertyHandlerFactory& operator= ( const XMLPropertyHandlerFactory& ); // disabled + public: + XMLPropertyHandlerFactory(); virtual ~XMLPropertyHandlerFactory(); /** @@ -91,11 +97,7 @@ protected: private: /** Retrieves ( creates if necessary ) PropertyHandler for basic XML-types */ - SAL_DLLPRIVATE const XMLPropertyHandler* GetBasicHandler( sal_Int32 nType ) - const; - - typedef ::std::map<sal_Int32, const XMLPropertyHandler*> CacheMap; - mutable CacheMap maHandlerCache; + SAL_DLLPRIVATE const XMLPropertyHandler* GetBasicHandler( sal_Int32 nType ) const; }; #endif // INCLUDED_XMLOFF_PRHDLFAC_HXX diff --git a/sc/source/filter/xml/xmlstyle.hxx b/sc/source/filter/xml/xmlstyle.hxx index a3f3f12..5e625b0 100644 --- a/sc/source/filter/xml/xmlstyle.hxx +++ b/sc/source/filter/xml/xmlstyle.hxx @@ -28,6 +28,7 @@ #include <xmloff/styleexp.hxx> #include <xmloff/xmlexppr.hxx> #include <xmloff/contextid.hxx> +#include <xmloff/xmlprhdl.hxx> extern const XMLPropertyMapEntry aXMLScCellStylesProperties[]; extern const XMLPropertyMapEntry aXMLScColumnStylesProperties[]; diff --git a/sw/source/filter/xml/xmlexpit.cxx b/sw/source/filter/xml/xmlexpit.cxx index 119dac1..0ce5f74 100644 --- a/sw/source/filter/xml/xmlexpit.cxx +++ b/sw/source/filter/xml/xmlexpit.cxx @@ -32,6 +32,7 @@ #include <xmloff/xmltypes.hxx> #include <editeng/xmlcnitm.hxx> #include <xmloff/xmlexp.hxx> +#include <xmloff/xmlprhdl.hxx> #include <editeng/memberids.hrc> #include "hintids.hxx" #include "unomid.h" diff --git a/sw/source/filter/xml/xmlimpit.cxx b/sw/source/filter/xml/xmlimpit.cxx index 529a598..5a6a947 100644 --- a/sw/source/filter/xml/xmlimpit.cxx +++ b/sw/source/filter/xml/xmlimpit.cxx @@ -47,6 +47,7 @@ #include "fmtlsplt.hxx" #include <xmloff/prhdlfac.hxx> #include <xmloff/xmltypes.hxx> +#include <xmloff/xmlprhdl.hxx> #include "xmlithlp.hxx" #include <com/sun/star/uno/Any.hxx> diff --git a/xmloff/source/draw/animationexport.cxx b/xmloff/source/draw/animationexport.cxx index bf1c5b1..11ed567 100644 --- a/xmloff/source/draw/animationexport.cxx +++ b/xmloff/source/draw/animationexport.cxx @@ -63,6 +63,7 @@ #include <xmloff/xmlement.hxx> #include <xmloff/nmspmap.hxx> #include <xmloff/shapeexport.hxx> +#include <xmloff/xmlprhdl.hxx> #include "animations.hxx" #include <xmloff/animationexport.hxx> diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx index e242ed0..66f3790 100644 --- a/xmloff/source/draw/animationimport.cxx +++ b/xmloff/source/draw/animationimport.cxx @@ -61,6 +61,7 @@ #include <xmloff/xmluconv.hxx> #include <osl/mutex.hxx> #include <xmloff/nmspmap.hxx> +#include <xmloff/xmlprhdl.hxx> #include "anim.hxx" #include "facreg.hxx" diff --git a/xmloff/source/style/prhdlfac.cxx b/xmloff/source/style/prhdlfac.cxx index 2829fe6..b60119d 100644 --- a/xmloff/source/style/prhdlfac.cxx +++ b/xmloff/source/style/prhdlfac.cxx @@ -17,15 +17,17 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <xmloff/prhdlfac.hxx> + #include <com/sun/star/drawing/ColorMode.hpp> #include <com/sun/star/text/HorizontalAdjust.hpp> #include <com/sun/star/text/WritingMode2.hpp> #include <tools/debug.hxx> -#include <xmloff/prhdlfac.hxx> #include <xmloff/xmltypes.hxx> #include <xmloff/xmltoken.hxx> +#include <xmloff/xmlprhdl.hxx> #include "xmlbahdl.hxx" #include <xmloff/NamedBoolPropertyHdl.hxx> #include <xmloff/XMLConstantsPropertyHandler.hxx> @@ -52,6 +54,8 @@ #include "XMLRectangleMembersHandler.hxx" #include "DrawAspectHdl.hxx" +#include <map> + using namespace ::com::sun::star; using namespace ::xmloff::token; @@ -94,11 +98,22 @@ static SvXMLEnumMapEntry const aXML_WritingDirection_Enum[] = { XML_TOKEN_INVALID, 0 } }; -// Dtor +typedef std::map<sal_Int32, const XMLPropertyHandler*> CacheMap; + +struct XMLPropertyHandlerFactory::Impl +{ + mutable CacheMap maHandlerCache; +}; + +XMLPropertyHandlerFactory::XMLPropertyHandlerFactory() : + mpImpl(new Impl) {} + XMLPropertyHandlerFactory::~XMLPropertyHandlerFactory() { - for( CacheMap::iterator pPos = maHandlerCache.begin(); pPos != maHandlerCache.end(); ++pPos ) + for( CacheMap::iterator pPos = mpImpl->maHandlerCache.begin(); pPos != mpImpl->maHandlerCache.end(); ++pPos ) delete pPos->second; + + delete mpImpl; } // Interface @@ -114,15 +129,15 @@ const XMLPropertyHandler* XMLPropertyHandlerFactory::GetHdlCache( sal_Int32 nTyp { const XMLPropertyHandler* pRet = NULL; - if( maHandlerCache.find( nType ) != maHandlerCache.end() ) - pRet = maHandlerCache.find( nType )->second; + if( mpImpl->maHandlerCache.find( nType ) != mpImpl->maHandlerCache.end() ) + pRet = mpImpl->maHandlerCache.find( nType )->second; return pRet; } void XMLPropertyHandlerFactory::PutHdlCache( sal_Int32 nType, const XMLPropertyHandler* pHdl ) const { - maHandlerCache[nType] = pHdl; + mpImpl->maHandlerCache[nType] = pHdl; } const XMLPropertyHandler* XMLPropertyHandlerFactory::GetBasicHandler( sal_Int32 nType ) const commit 690f7ff8839c66c29f71f681b9e78cc51923c6b6 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri Jul 25 15:18:40 2014 -0400 Store the handler as a const pointer. Handlers are conceptually stateless; we can keep them as const objects. Change-Id: I3d35ab0695037632e82f67f901c9795adf9bdd8d diff --git a/include/xmloff/prhdlfac.hxx b/include/xmloff/prhdlfac.hxx index 3b04583..aca1469 100644 --- a/include/xmloff/prhdlfac.hxx +++ b/include/xmloff/prhdlfac.hxx @@ -84,7 +84,7 @@ public: protected: /** Retrieves a PropertyHandler from the internal cache */ - XMLPropertyHandler* GetHdlCache( sal_Int32 nType ) const; + const XMLPropertyHandler* GetHdlCache( sal_Int32 nType ) const; /** Puts a PropertyHandler into the internal cache */ void PutHdlCache( sal_Int32 nType, const XMLPropertyHandler* pHdl ) const; @@ -94,7 +94,7 @@ private: SAL_DLLPRIVATE const XMLPropertyHandler* GetBasicHandler( sal_Int32 nType ) const; - typedef ::std::map< sal_Int32, XMLPropertyHandler* > CacheMap; + typedef ::std::map<sal_Int32, const XMLPropertyHandler*> CacheMap; mutable CacheMap maHandlerCache; }; diff --git a/xmloff/source/style/prhdlfac.cxx b/xmloff/source/style/prhdlfac.cxx index 5607585..2829fe6 100644 --- a/xmloff/source/style/prhdlfac.cxx +++ b/xmloff/source/style/prhdlfac.cxx @@ -110,9 +110,9 @@ const XMLPropertyHandler* XMLPropertyHandlerFactory::GetPropertyHandler( sal_Int } // Helper-methods to create and cache PropertyHandler -XMLPropertyHandler* XMLPropertyHandlerFactory::GetHdlCache( sal_Int32 nType ) const +const XMLPropertyHandler* XMLPropertyHandlerFactory::GetHdlCache( sal_Int32 nType ) const { - XMLPropertyHandler* pRet = NULL; + const XMLPropertyHandler* pRet = NULL; if( maHandlerCache.find( nType ) != maHandlerCache.end() ) pRet = maHandlerCache.find( nType )->second; @@ -122,7 +122,7 @@ XMLPropertyHandler* XMLPropertyHandlerFactory::GetHdlCache( sal_Int32 nType ) co void XMLPropertyHandlerFactory::PutHdlCache( sal_Int32 nType, const XMLPropertyHandler* pHdl ) const { - maHandlerCache[nType] = (XMLPropertyHandler*)pHdl; + maHandlerCache[nType] = pHdl; } const XMLPropertyHandler* XMLPropertyHandlerFactory::GetBasicHandler( sal_Int32 nType ) const commit dbf84a3574dd3524fcb8d89c3dcb91182656e1ce Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri Jul 25 15:13:42 2014 -0400 The 'mutable' keyword exists for this kind of use. Change-Id: Ic52192f53039b7f1b4529a93c13de74c5f54e7f8 diff --git a/include/xmloff/prhdlfac.hxx b/include/xmloff/prhdlfac.hxx index e21b5cb..3b04583 100644 --- a/include/xmloff/prhdlfac.hxx +++ b/include/xmloff/prhdlfac.hxx @@ -95,7 +95,7 @@ private: const; typedef ::std::map< sal_Int32, XMLPropertyHandler* > CacheMap; - CacheMap maHandlerCache; + mutable CacheMap maHandlerCache; }; #endif // INCLUDED_XMLOFF_PRHDLFAC_HXX diff --git a/xmloff/source/style/prhdlfac.cxx b/xmloff/source/style/prhdlfac.cxx index 002c7f4..5607585 100644 --- a/xmloff/source/style/prhdlfac.cxx +++ b/xmloff/source/style/prhdlfac.cxx @@ -122,9 +122,7 @@ XMLPropertyHandler* XMLPropertyHandlerFactory::GetHdlCache( sal_Int32 nType ) co void XMLPropertyHandlerFactory::PutHdlCache( sal_Int32 nType, const XMLPropertyHandler* pHdl ) const { - // Don't be wondered about the following construct. The sense is to be able to provide a const- - // method as class-interface. - ((XMLPropertyHandlerFactory*)this)->maHandlerCache[ nType ] = (XMLPropertyHandler*)pHdl; + maHandlerCache[nType] = (XMLPropertyHandler*)pHdl; } const XMLPropertyHandler* XMLPropertyHandlerFactory::GetBasicHandler( sal_Int32 nType ) const _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits