diff options
-rw-r--r-- | include/xmloff/prhdlfac.hxx | 18 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlstyle.hxx | 1 | ||||
-rw-r--r-- | sw/source/filter/xml/xmlexpit.cxx | 1 | ||||
-rw-r--r-- | sw/source/filter/xml/xmlimpit.cxx | 1 | ||||
-rw-r--r-- | xmloff/source/draw/animationexport.cxx | 1 | ||||
-rw-r--r-- | xmloff/source/draw/animationimport.cxx | 1 | ||||
-rw-r--r-- | xmloff/source/style/prhdlfac.cxx | 27 |
7 files changed, 36 insertions, 14 deletions
diff --git a/include/xmloff/prhdlfac.hxx b/include/xmloff/prhdlfac.hxx index aca1469fabd0..1b1822b3404b 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 a3f3f125780b..5e625b0abc31 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 119dac13c068..0ce5f74e1f0f 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 529a59879d98..5a6a947e0152 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 bf1c5b13b664..11ed567aa65a 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 e242ed01825a..66f379005f96 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 2829fe6a5152..b60119da7164 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 |