include/xmloff/SchXMLImportHelper.hxx | 25 +- include/xmloff/shapeimport.hxx | 2 include/xmloff/xmlnumfi.hxx | 4 writerperfect/inc/WPXSvInputStream.hxx | 2 writerperfect/qa/unit/DirectoryStreamTest.cxx | 13 - writerperfect/source/calc/StarOfficeCalcImportFilter.cxx | 2 writerperfect/source/common/WPXSvInputStream.cxx | 10 writerperfect/source/draw/StarOfficeDrawImportFilter.cxx | 2 writerperfect/source/draw/ZMFImportFilter.cxx | 2 writerperfect/source/writer/StarOfficeWriterImportFilter.cxx | 11 xmloff/inc/animationimport.hxx | 7 xmloff/inc/animimp.hxx | 5 xmloff/inc/xexptran.hxx | 11 xmloff/source/chart/MultiPropertySetHandler.hxx | 30 -- xmloff/source/chart/SchXMLImport.cxx | 54 +--- xmloff/source/draw/animationimport.cxx | 34 -- xmloff/source/draw/animimp.cxx | 13 - xmloff/source/draw/shapeimport.cxx | 29 -- xmloff/source/draw/xexptran.cxx | 135 ++--------- xmloff/source/draw/ximpcustomshape.cxx | 23 - xmloff/source/draw/ximpshap.cxx | 26 -- xmloff/source/draw/ximpshap.hxx | 3 xmloff/source/draw/ximpstyl.cxx | 11 xmloff/source/draw/ximpstyl.hxx | 6 xmloff/source/style/xmlnumfi.cxx | 46 +-- 25 files changed, 173 insertions(+), 333 deletions(-)
New commits: commit 43c6b20b9fef7b6d331ae15cfcc9fd2632799584 Author: David Tardon <[email protected]> Date: Fri Sep 9 11:44:18 2016 +0200 use std::unique_ptr Change-Id: I46dd045b2648f711b3e29ffea0c2e264c141293c diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx index 9d035e4..e2b0f8d 100644 --- a/xmloff/source/style/xmlnumfi.cxx +++ b/xmloff/source/style/xmlnumfi.cxx @@ -65,11 +65,11 @@ struct SvXMLNumFmtEntry class SvXMLNumImpData { SvNumberFormatter* pFormatter; - SvXMLTokenMap* pStylesElemTokenMap; - SvXMLTokenMap* pStyleElemTokenMap; - SvXMLTokenMap* pStyleAttrTokenMap; - SvXMLTokenMap* pStyleElemAttrTokenMap; - LocaleDataWrapper* pLocaleData; + std::unique_ptr<SvXMLTokenMap> pStylesElemTokenMap; + std::unique_ptr<SvXMLTokenMap> pStyleElemTokenMap; + std::unique_ptr<SvXMLTokenMap> pStyleAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> pStyleElemAttrTokenMap; + std::unique_ptr<LocaleDataWrapper> pLocaleData; std::vector<SvXMLNumFmtEntry> m_NameEntries; uno::Reference< uno::XComponentContext > m_xContext; @@ -78,7 +78,6 @@ public: SvXMLNumImpData( SvNumberFormatter* pFmt, const uno::Reference<uno::XComponentContext>& rxContext ); - ~SvXMLNumImpData(); SvNumberFormatter* GetNumberFormatter() const { return pFormatter; } const SvXMLTokenMap& GetStylesElemTokenMap(); @@ -365,25 +364,11 @@ SvXMLNumImpData::SvXMLNumImpData( SvNumberFormatter* pFmt, const uno::Reference<uno::XComponentContext>& rxContext ) : pFormatter(pFmt), - pStylesElemTokenMap(nullptr), - pStyleElemTokenMap(nullptr), - pStyleAttrTokenMap(nullptr), - pStyleElemAttrTokenMap(nullptr), - pLocaleData(nullptr), m_xContext(rxContext) { SAL_WARN_IF( !rxContext.is(), "xmloff", "got no service manager" ); } -SvXMLNumImpData::~SvXMLNumImpData() -{ - delete pStylesElemTokenMap; - delete pStyleElemTokenMap; - delete pStyleAttrTokenMap; - delete pStyleElemAttrTokenMap; - delete pLocaleData; -} - sal_uInt32 SvXMLNumImpData::GetKeyForName( const OUString& rName ) { sal_uInt16 nCount = m_NameEntries.size(); @@ -479,7 +464,7 @@ const SvXMLTokenMap& SvXMLNumImpData::GetStylesElemTokenMap() XML_TOKEN_MAP_END }; - pStylesElemTokenMap = new SvXMLTokenMap( aStylesElemMap ); + pStylesElemTokenMap = o3tl::make_unique<SvXMLTokenMap>( aStylesElemMap ); } return *pStylesElemTokenMap; } @@ -517,7 +502,7 @@ const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemTokenMap() XML_TOKEN_MAP_END }; - pStyleElemTokenMap = new SvXMLTokenMap( aStyleElemMap ); + pStyleElemTokenMap = o3tl::make_unique<SvXMLTokenMap>( aStyleElemMap ); } return *pStyleElemTokenMap; } @@ -548,7 +533,7 @@ const SvXMLTokenMap& SvXMLNumImpData::GetStyleAttrTokenMap() XML_TOKEN_MAP_END }; - pStyleAttrTokenMap = new SvXMLTokenMap( aStyleAttrMap ); + pStyleAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>( aStyleAttrMap ); } return *pStyleAttrTokenMap; } @@ -594,7 +579,7 @@ const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemAttrTokenMap() XML_TOKEN_MAP_END }; - pStyleElemAttrTokenMap = new SvXMLTokenMap( aStyleElemAttrMap ); + pStyleElemAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>( aStyleElemAttrMap ); } return *pStyleElemAttrTokenMap; } @@ -602,7 +587,7 @@ const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemAttrTokenMap() const LocaleDataWrapper& SvXMLNumImpData::GetLocaleData( LanguageType nLang ) { if ( !pLocaleData ) - pLocaleData = new LocaleDataWrapper( + pLocaleData = o3tl::make_unique<LocaleDataWrapper>( pFormatter ? pFormatter->GetComponentContext() : m_xContext, LanguageTag( nLang ) ); else commit 87bc9685c250b403d4c002b54d5c49a6a81222fb Author: David Tardon <[email protected]> Date: Fri Sep 9 11:42:20 2016 +0200 use std::unique_ptr Change-Id: I33d75ede0031da63c00c35af7b42867fea0b8d80 diff --git a/include/xmloff/xmlnumfi.hxx b/include/xmloff/xmlnumfi.hxx index e124917..a2ea8b4 100644 --- a/include/xmloff/xmlnumfi.hxx +++ b/include/xmloff/xmlnumfi.hxx @@ -72,7 +72,7 @@ namespace com { namespace sun { namespace star { namespace lang { class SvXMLNumFmtHelper { - SvXMLNumImpData* pData; + std::unique_ptr<SvXMLNumImpData> pData; public: SvXMLNumFmtHelper( @@ -91,7 +91,7 @@ public: const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList, SvXMLStylesContext& rStyles); - SvXMLNumImpData* getData() { return pData; } + SvXMLNumImpData* getData() { return pData.get(); } const SvXMLTokenMap& GetStylesElemTokenMap(); diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx index 1d94ea3..9d035e4 100644 --- a/xmloff/source/style/xmlnumfi.cxx +++ b/xmloff/source/style/xmlnumfi.cxx @@ -18,6 +18,9 @@ */ #include <comphelper/string.hxx> + +#include <o3tl/make_unique.hxx> + #include <unotools/syslocale.hxx> #include <svl/zforlist.hxx> @@ -2307,7 +2310,7 @@ SvXMLNumFmtHelper::SvXMLNumFmtHelper( if (pObj) pFormatter = pObj->GetNumberFormatter(); - pData = new SvXMLNumImpData( pFormatter, rxContext ); + pData = o3tl::make_unique<SvXMLNumImpData>( pFormatter, rxContext ); } SvXMLNumFmtHelper::SvXMLNumFmtHelper( @@ -2316,15 +2319,13 @@ SvXMLNumFmtHelper::SvXMLNumFmtHelper( { SAL_WARN_IF( !rxContext.is(), "xmloff", "got no service manager" ); - pData = new SvXMLNumImpData( pNumberFormatter, rxContext ); + pData = o3tl::make_unique<SvXMLNumImpData>( pNumberFormatter, rxContext ); } SvXMLNumFmtHelper::~SvXMLNumFmtHelper() { // remove temporary (volatile) formats from NumberFormatter pData->RemoveVolatileFormats(); - - delete pData; } SvXMLStyleContext* SvXMLNumFmtHelper::CreateChildContext( SvXMLImport& rImport, @@ -2346,7 +2347,7 @@ SvXMLStyleContext* SvXMLNumFmtHelper::CreateChildContext( SvXMLImport& rImport, case XML_TOK_STYLES_BOOLEAN_STYLE: case XML_TOK_STYLES_TEXT_STYLE: pContext = new SvXMLNumFormatContext( rImport, nPrefix, rLocalName, - pData, nToken, xAttrList, rStyles ); + pData.get(), nToken, xAttrList, rStyles ); break; } commit a13b6bd7317e39c3b54d4792aeea99fda0922a9d Author: David Tardon <[email protected]> Date: Fri Sep 9 11:39:20 2016 +0200 use std::unique_ptr Change-Id: I71627aa2a524a59180e8934df9561cf67a1c6126 diff --git a/xmloff/source/draw/ximpstyl.cxx b/xmloff/source/draw/ximpstyl.cxx index dadbdaa..2533f27 100644 --- a/xmloff/source/draw/ximpstyl.cxx +++ b/xmloff/source/draw/ximpstyl.cxx @@ -24,6 +24,7 @@ #include <xmloff/xmluconv.hxx> #include "ximpnote.hxx" #include <tools/debug.hxx> +#include <o3tl/make_unique.hxx> #include <osl/diagnose.h> #include <com/sun/star/lang/XMultiServiceFactory.hpp> @@ -923,14 +924,8 @@ SdXMLStylesContext::SdXMLStylesContext( mbIsAutoStyle(bIsAutoStyle) { Reference< uno::XComponentContext > xContext = rImport.GetComponentContext(); - mpNumFormatter = new SvNumberFormatter( xContext, LANGUAGE_SYSTEM ); - mpNumFmtHelper = new SvXMLNumFmtHelper( mpNumFormatter, xContext ); -} - -SdXMLStylesContext::~SdXMLStylesContext() -{ - delete mpNumFmtHelper; - delete mpNumFormatter; + mpNumFormatter = o3tl::make_unique<SvNumberFormatter>( xContext, LANGUAGE_SYSTEM ); + mpNumFmtHelper = o3tl::make_unique<SvXMLNumFmtHelper>( mpNumFormatter.get(), xContext ); } SvXMLStyleContext* SdXMLStylesContext::CreateStyleChildContext( diff --git a/xmloff/source/draw/ximpstyl.hxx b/xmloff/source/draw/ximpstyl.hxx index 8344554..867f5b3 100644 --- a/xmloff/source/draw/ximpstyl.hxx +++ b/xmloff/source/draw/ximpstyl.hxx @@ -25,6 +25,7 @@ #include "ximppage.hxx" #include <xmloff/xmlstyle.hxx> #include <com/sun/star/view/PaperOrientation.hpp> +#include <memory> #include <vector> class SvNumberFormatter; @@ -176,8 +177,8 @@ class SdXMLStylesContext : public SvXMLStylesContext { rtl::Reference< SvXMLImportPropertyMapper > xPresImpPropMapper; bool mbIsAutoStyle; - SvXMLNumFmtHelper* mpNumFmtHelper; - SvNumberFormatter* mpNumFormatter; + std::unique_ptr<SvXMLNumFmtHelper> mpNumFmtHelper; + std::unique_ptr<SvNumberFormatter> mpNumFormatter; const SdXMLImport& GetSdImport() const { return static_cast<const SdXMLImport&>(GetImport()); } SdXMLImport& GetSdImport() { return static_cast<SdXMLImport&>(GetImport()); } @@ -211,7 +212,6 @@ public: const OUString& rLName, const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList, bool bIsAutoStyle); - virtual ~SdXMLStylesContext(); virtual sal_uInt16 GetFamily( const OUString& rFamily ) const override; virtual void EndElement() override; commit 44c7366d5b58116c14d1dfd41ab6d2c8daec223a Author: David Tardon <[email protected]> Date: Fri Sep 9 11:24:22 2016 +0200 avoid manual memory handling Change-Id: I8b8d1126f20ee29fb3ac80e539da5e340226c304 diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx index ffd7077..15facfc 100644 --- a/xmloff/source/draw/ximpshap.cxx +++ b/xmloff/source/draw/ximpshap.cxx @@ -2583,14 +2583,8 @@ SdXMLChartShapeContext::SdXMLChartShapeContext( const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList, uno::Reference< drawing::XShapes >& rShapes, bool bTemporaryShape) -: SdXMLShapeContext( rImport, nPrfx, rLocalName, xAttrList, rShapes, bTemporaryShape ), - mpChartContext( nullptr ) -{ -} - -SdXMLChartShapeContext::~SdXMLChartShapeContext() +: SdXMLShapeContext( rImport, nPrfx, rLocalName, xAttrList, rShapes, bTemporaryShape ) { - delete mpChartContext; } void SdXMLChartShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) @@ -2626,7 +2620,7 @@ void SdXMLChartShapeContext::StartElement(const uno::Reference< xml::sax::XAttri uno::Reference< frame::XModel > xChartModel; if( aAny >>= xChartModel ) { - mpChartContext = GetImport().GetChartImport()->CreateChartContext( GetImport(), XML_NAMESPACE_SVG, GetXMLToken(XML_CHART), xChartModel, xAttrList ); + mxChartContext.set( GetImport().GetChartImport()->CreateChartContext( GetImport(), XML_NAMESPACE_SVG, GetXMLToken(XML_CHART), xChartModel, xAttrList ) ); } } } @@ -2650,30 +2644,30 @@ void SdXMLChartShapeContext::StartElement(const uno::Reference< xml::sax::XAttri SdXMLShapeContext::StartElement(xAttrList); - if( mpChartContext ) - mpChartContext->StartElement( xAttrList ); + if( mxChartContext.is() ) + mxChartContext->StartElement( xAttrList ); } } void SdXMLChartShapeContext::EndElement() { - if( mpChartContext ) - mpChartContext->EndElement(); + if( mxChartContext.is() ) + mxChartContext->EndElement(); SdXMLShapeContext::EndElement(); } void SdXMLChartShapeContext::Characters( const OUString& rChars ) { - if( mpChartContext ) - mpChartContext->Characters( rChars ); + if( mxChartContext.is() ) + mxChartContext->Characters( rChars ); } SvXMLImportContext * SdXMLChartShapeContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) { - if( mpChartContext ) - return mpChartContext->CreateChildContext( nPrefix, rLocalName, xAttrList ); + if( mxChartContext.is() ) + return mxChartContext->CreateChildContext( nPrefix, rLocalName, xAttrList ); return nullptr; } diff --git a/xmloff/source/draw/ximpshap.hxx b/xmloff/source/draw/ximpshap.hxx index dcf6233..a6ce95d 100644 --- a/xmloff/source/draw/ximpshap.hxx +++ b/xmloff/source/draw/ximpshap.hxx @@ -404,7 +404,7 @@ public: class SdXMLChartShapeContext : public SdXMLShapeContext { - SvXMLImportContext* mpChartContext; + SvXMLImportContextRef mxChartContext; public: @@ -413,7 +413,6 @@ public: const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList, css::uno::Reference< css::drawing::XShapes >& rShapes, bool bTemporaryShape); - virtual ~SdXMLChartShapeContext(); virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; virtual void EndElement() override; commit fccf28b5795b18907337bbb22a85d23a52280add Author: David Tardon <[email protected]> Date: Fri Sep 9 11:21:00 2016 +0200 use std::unique_ptr Change-Id: Ic03888e22949c6c3fc529f9a557f58620fc76f20 diff --git a/xmloff/source/draw/ximpcustomshape.cxx b/xmloff/source/draw/ximpcustomshape.cxx index 167376b..029a1ba 100644 --- a/xmloff/source/draw/ximpcustomshape.cxx +++ b/xmloff/source/draw/ximpcustomshape.cxx @@ -20,6 +20,7 @@ #include "ximpcustomshape.hxx" #include "ximpshap.hxx" #include <o3tl/any.hxx> +#include <o3tl/make_unique.hxx> #include <rtl/math.hxx> #include <rtl/ustrbuf.hxx> #include <rtl/ustring.hxx> @@ -47,6 +48,7 @@ #include <com/sun/star/drawing/ProjectionMode.hpp> #include <sax/tools/converter.hxx> #include <comphelper/sequence.hxx> +#include <memory> #include <unordered_map> using namespace ::com::sun::star; @@ -1168,7 +1170,7 @@ void XMLEnhancedCustomShapeContext::EndElement() if ( !maEquations.empty() ) { // creating hash map containing the name and index of each equation - EquationHashMap* pH = new EquationHashMap; + std::unique_ptr<EquationHashMap> pH = o3tl::make_unique<EquationHashMap>(); std::vector< OUString >::iterator aEquationNameIter = maEquationNames.begin(); std::vector< OUString >::iterator aEquationNameEnd = maEquationNames.end(); while( aEquationNameIter != aEquationNameEnd ) @@ -1224,8 +1226,8 @@ void XMLEnhancedCustomShapeContext::EndElement() aPathIter->Value); for ( i = 0; i < rSeq.getLength(); i++ ) { - CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].First), pH ); - CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].Second), pH ); + CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].First), pH.get() ); + CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].Second), pH.get() ); } } break; @@ -1236,10 +1238,10 @@ void XMLEnhancedCustomShapeContext::EndElement() aPathIter->Value); for ( i = 0; i < rSeq.getLength(); i++ ) { - CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].TopLeft.First), pH ); - CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].TopLeft.Second), pH ); - CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].BottomRight.First), pH ); - CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].BottomRight.Second), pH ); + CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].TopLeft.First), pH.get() ); + CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].TopLeft.Second), pH.get() ); + CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].BottomRight.First), pH.get() ); + CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(rSeq[ i ].BottomRight.Second), pH.get() ); } } break; @@ -1265,7 +1267,7 @@ void XMLEnhancedCustomShapeContext::EndElement() case EAS_RadiusRangeMaximum : { CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>(*o3tl::doAccess<css::drawing::EnhancedCustomShapeParameter>( - pValues->Value)), pH ); + pValues->Value)), pH.get() ); } break; @@ -1273,9 +1275,9 @@ void XMLEnhancedCustomShapeContext::EndElement() case EAS_Polar : { CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>((*o3tl::doAccess<css::drawing::EnhancedCustomShapeParameterPair>( - pValues->Value)).First), pH ); + pValues->Value)).First), pH.get() ); CheckAndResolveEquationParameter( const_cast<css::drawing::EnhancedCustomShapeParameter &>((*o3tl::doAccess<css::drawing::EnhancedCustomShapeParameterPair>( - pValues->Value)).Second), pH ); + pValues->Value)).Second), pH.get() ); } break; default: @@ -1285,7 +1287,6 @@ void XMLEnhancedCustomShapeContext::EndElement() } ++aHandleIter; } - delete pH; } SdXMLCustomShapePropertyMerge( mrCustomShapeGeometry, maExtrusion, EASGet( EAS_Extrusion ) ); commit df19c3c8006174e452cea455328ebb25e81a444b Author: David Tardon <[email protected]> Date: Fri Sep 9 11:08:31 2016 +0200 reduce the insanity level of the codebase a bit Change-Id: I4e0ee3cb87dd8f2bf8e35909e1b93d311c17a8c6 diff --git a/xmloff/inc/xexptran.hxx b/xmloff/inc/xexptran.hxx index 230fd5b5..184158d 100644 --- a/xmloff/inc/xexptran.hxx +++ b/xmloff/inc/xexptran.hxx @@ -28,6 +28,7 @@ #include <com/sun/star/drawing/HomogenMatrix.hpp> #include <tools/mapunit.hxx> +#include <memory> #include <vector> struct ImpSdXMLExpTransObj2DBase; @@ -45,14 +46,15 @@ namespace basegfx class SdXMLImExTransform2D { - std::vector< ImpSdXMLExpTransObj2DBase* > maList; + // NOTE: This uses shared_ptr, because with unique_ptr the code + // fails to compile because of incomplete type. + std::vector< std::shared_ptr< ImpSdXMLExpTransObj2DBase > > maList; OUString msString; void EmptyList(); public: SdXMLImExTransform2D() {} - ~SdXMLImExTransform2D() { EmptyList(); } void AddRotate(double fNew); void AddTranslate(const ::basegfx::B2DTuple& rNew); @@ -66,7 +68,9 @@ public: class SdXMLImExTransform3D { - std::vector< ImpSdXMLExpTransObj3DBase* > maList; + // NOTE: This uses shared_ptr, because with unique_ptr the code + // fails to compile because of incomplete type. + std::vector< std::shared_ptr< ImpSdXMLExpTransObj3DBase > > maList; OUString msString; void EmptyList(); @@ -74,7 +78,6 @@ class SdXMLImExTransform3D public: SdXMLImExTransform3D() {} SdXMLImExTransform3D(const OUString& rNew, const SvXMLUnitConverter& rConv); - ~SdXMLImExTransform3D() { EmptyList(); } void AddMatrix(const ::basegfx::B3DHomMatrix& rNew); diff --git a/xmloff/source/draw/xexptran.cxx b/xmloff/source/draw/xexptran.cxx index 7c4debc..f87f33d 100644 --- a/xmloff/source/draw/xexptran.cxx +++ b/xmloff/source/draw/xexptran.cxx @@ -18,6 +18,7 @@ */ #include "xexptran.hxx" +#include <o3tl/make_unique.hxx> #include <rtl/ustrbuf.hxx> #include <sax/tools/converter.hxx> #include <xmloff/xmluconv.hxx> @@ -35,6 +36,8 @@ using namespace ::com::sun::star; +using o3tl::make_unique; + // parsing help functions for simple chars void Imp_SkipSpaces(const OUString& rStr, sal_Int32& rPos, const sal_Int32 nLen) { @@ -170,6 +173,7 @@ struct ImpSdXMLExpTransObj2DBase sal_uInt16 mnType; explicit ImpSdXMLExpTransObj2DBase(sal_uInt16 nType) : mnType(nType) {} + virtual ~ImpSdXMLExpTransObj2DBase() {} }; // possible object types for 2D @@ -224,51 +228,6 @@ struct ImpSdXMLExpTransObj2DMatrix : public ImpSdXMLExpTransObj2DBase void SdXMLImExTransform2D::EmptyList() { - const sal_uInt32 nCount = maList.size(); - for(sal_uInt32 a(0L); a < nCount; a++) - { - ImpSdXMLExpTransObj2DBase* pObj = maList[a]; - - switch(pObj->mnType) - { - case IMP_SDXMLEXP_TRANSOBJ2D_ROTATE : - { - delete static_cast<ImpSdXMLExpTransObj2DRotate*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ2D_SCALE : - { - delete static_cast<ImpSdXMLExpTransObj2DScale*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ2D_TRANSLATE : - { - delete static_cast<ImpSdXMLExpTransObj2DTranslate*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ2D_SKEWX : - { - delete static_cast<ImpSdXMLExpTransObj2DSkewX*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ2D_SKEWY : - { - delete static_cast<ImpSdXMLExpTransObj2DSkewY*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ2D_MATRIX : - { - delete static_cast<ImpSdXMLExpTransObj2DMatrix*>(pObj); - break; - } - default : - { - OSL_FAIL("SdXMLImExTransform2D: impossible entry!"); - break; - } - } - } - maList.clear(); } @@ -277,19 +236,19 @@ void SdXMLImExTransform2D::EmptyList() void SdXMLImExTransform2D::AddRotate(double fNew) { if(fNew != 0.0) - maList.push_back(new ImpSdXMLExpTransObj2DRotate(fNew)); + maList.push_back(make_unique<ImpSdXMLExpTransObj2DRotate>(fNew)); } void SdXMLImExTransform2D::AddTranslate(const ::basegfx::B2DTuple& rNew) { if(!rNew.equalZero()) - maList.push_back(new ImpSdXMLExpTransObj2DTranslate(rNew)); + maList.push_back(make_unique<ImpSdXMLExpTransObj2DTranslate>(rNew)); } void SdXMLImExTransform2D::AddSkewX(double fNew) { if(fNew != 0.0) - maList.push_back(new ImpSdXMLExpTransObj2DSkewX(fNew)); + maList.push_back(make_unique<ImpSdXMLExpTransObj2DSkewX>(fNew)); } // gen string for export @@ -302,7 +261,7 @@ const OUString& SdXMLImExTransform2D::GetExportString(const SvXMLUnitConverter& const sal_uInt32 nCount = maList.size(); for(sal_uInt32 a(0L); a < nCount; a++) { - ImpSdXMLExpTransObj2DBase* pObj = maList[a]; + ImpSdXMLExpTransObj2DBase* pObj = maList[a].get(); switch(pObj->mnType) { case IMP_SDXMLEXP_TRANSOBJ2D_ROTATE : @@ -429,7 +388,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen); fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue); if(fValue != 0.0) - maList.push_back(new ImpSdXMLExpTransObj2DRotate(fValue)); + maList.push_back(make_unique<ImpSdXMLExpTransObj2DRotate>(fValue)); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -443,7 +402,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver aValue.setY(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, aValue.getY())); if(aValue.getX() != 1.0 || aValue.getY() != 1.0) - maList.push_back(new ImpSdXMLExpTransObj2DScale(aValue)); + maList.push_back(make_unique<ImpSdXMLExpTransObj2DScale>(aValue)); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -457,7 +416,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver aValue.setY(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, aValue.getY(), true)); if(!aValue.equalZero()) - maList.push_back(new ImpSdXMLExpTransObj2DTranslate(aValue)); + maList.push_back(make_unique<ImpSdXMLExpTransObj2DTranslate>(aValue)); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -468,7 +427,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen); fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue); if(fValue != 0.0) - maList.push_back(new ImpSdXMLExpTransObj2DSkewX(fValue)); + maList.push_back(make_unique<ImpSdXMLExpTransObj2DSkewX>(fValue)); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -479,7 +438,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen); fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue); if(fValue != 0.0) - maList.push_back(new ImpSdXMLExpTransObj2DSkewY(fValue)); + maList.push_back(make_unique<ImpSdXMLExpTransObj2DSkewY>(fValue)); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -515,7 +474,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver Imp_SkipSpacesAndCommas(aStr, nPos, nLen); if(!aValue.isIdentity()) - maList.push_back(new ImpSdXMLExpTransObj2DMatrix(aValue)); + maList.push_back(make_unique<ImpSdXMLExpTransObj2DMatrix>(aValue)); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -535,7 +494,7 @@ void SdXMLImExTransform2D::GetFullTransform(::basegfx::B2DHomMatrix& rFullTrans) const sal_uInt32 nCount = maList.size(); for(sal_uInt32 a(0L); a < nCount; a++) { - ImpSdXMLExpTransObj2DBase* pObj = maList[a]; + ImpSdXMLExpTransObj2DBase* pObj = maList[a].get(); switch(pObj->mnType) { case IMP_SDXMLEXP_TRANSOBJ2D_ROTATE : @@ -592,6 +551,7 @@ struct ImpSdXMLExpTransObj3DBase sal_uInt16 mnType; explicit ImpSdXMLExpTransObj3DBase(sal_uInt16 nType) : mnType(nType) {} + virtual ~ImpSdXMLExpTransObj3DBase() {} }; // possible object types for 3D @@ -646,51 +606,6 @@ struct ImpSdXMLExpTransObj3DMatrix : public ImpSdXMLExpTransObj3DBase void SdXMLImExTransform3D::EmptyList() { - const sal_uInt32 nCount = maList.size(); - for(sal_uInt32 a(0L); a < nCount; a++) - { - ImpSdXMLExpTransObj3DBase* pObj = maList[a]; - - switch(pObj->mnType) - { - case IMP_SDXMLEXP_TRANSOBJ3D_ROTATE_X : - { - delete static_cast<ImpSdXMLExpTransObj3DRotateX*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ3D_ROTATE_Y : - { - delete static_cast<ImpSdXMLExpTransObj3DRotateY*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ3D_ROTATE_Z : - { - delete static_cast<ImpSdXMLExpTransObj3DRotateZ*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ3D_SCALE : - { - delete static_cast<ImpSdXMLExpTransObj3DScale*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ3D_TRANSLATE : - { - delete static_cast<ImpSdXMLExpTransObj3DTranslate*>(pObj); - break; - } - case IMP_SDXMLEXP_TRANSOBJ3D_MATRIX : - { - delete static_cast<ImpSdXMLExpTransObj3DMatrix*>(pObj); - break; - } - default : - { - OSL_FAIL("SdXMLImExTransform3D: impossible entry!"); - break; - } - } - } - maList.clear(); } @@ -699,7 +614,7 @@ void SdXMLImExTransform3D::EmptyList() void SdXMLImExTransform3D::AddMatrix(const ::basegfx::B3DHomMatrix& rNew) { if(!rNew.isIdentity()) - maList.push_back(new ImpSdXMLExpTransObj3DMatrix(rNew)); + maList.push_back(make_unique<ImpSdXMLExpTransObj3DMatrix>(rNew)); } void SdXMLImExTransform3D::AddHomogenMatrix(const drawing::HomogenMatrix& xHomMat) @@ -732,7 +647,7 @@ const OUString& SdXMLImExTransform3D::GetExportString(const SvXMLUnitConverter& const sal_uInt32 nCount = maList.size(); for(sal_uInt32 a(0L); a < nCount; a++) { - ImpSdXMLExpTransObj3DBase* pObj = maList[a]; + ImpSdXMLExpTransObj3DBase* pObj = maList[a].get(); switch(pObj->mnType) { case IMP_SDXMLEXP_TRANSOBJ3D_ROTATE_X : @@ -894,7 +809,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen); fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue); if(fValue != 0.0) - maList.push_back(new ImpSdXMLExpTransObj3DRotateX(basegfx::deg2rad(fValue))); + maList.push_back(make_unique<ImpSdXMLExpTransObj3DRotateX>(basegfx::deg2rad(fValue))); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -906,7 +821,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen); fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue); if(fValue != 0.0) - maList.push_back(new ImpSdXMLExpTransObj3DRotateY(basegfx::deg2rad(fValue))); + maList.push_back(make_unique<ImpSdXMLExpTransObj3DRotateY>(basegfx::deg2rad(fValue))); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -918,7 +833,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen); fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue); if(fValue != 0.0) - maList.push_back(new ImpSdXMLExpTransObj3DRotateZ(basegfx::deg2rad(fValue))); + maList.push_back(make_unique<ImpSdXMLExpTransObj3DRotateZ>(basegfx::deg2rad(fValue))); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -935,7 +850,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver aValue.setZ(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, aValue.getZ())); if(1.0 != aValue.getX() || 1.0 != aValue.getY() || 1.0 != aValue.getZ()) - maList.push_back(new ImpSdXMLExpTransObj3DScale(aValue)); + maList.push_back(make_unique<ImpSdXMLExpTransObj3DScale>(aValue)); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -952,7 +867,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver aValue.setZ(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, aValue.getZ(), true)); if(!aValue.equalZero()) - maList.push_back(new ImpSdXMLExpTransObj3DTranslate(aValue)); + maList.push_back(make_unique<ImpSdXMLExpTransObj3DTranslate>(aValue)); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -1012,7 +927,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver Imp_SkipSpacesAndCommas(aStr, nPos, nLen); if(!aValue.isIdentity()) - maList.push_back(new ImpSdXMLExpTransObj3DMatrix(aValue)); + maList.push_back(make_unique<ImpSdXMLExpTransObj3DMatrix>(aValue)); Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen); } @@ -1065,7 +980,7 @@ void SdXMLImExTransform3D::GetFullTransform(::basegfx::B3DHomMatrix& rFullTrans) const sal_uInt32 nCount = maList.size(); for(sal_uInt32 a(0L); a < nCount; a++) { - ImpSdXMLExpTransObj3DBase* pObj = maList[a]; + ImpSdXMLExpTransObj3DBase* pObj = maList[a].get(); switch(pObj->mnType) { case IMP_SDXMLEXP_TRANSOBJ3D_ROTATE_X : commit 22547c51cf9484b0d7e1a7ed317fe5f70aaab694 Author: David Tardon <[email protected]> Date: Fri Sep 9 10:43:53 2016 +0200 use std::shared_ptr Change-Id: Ie3f89c611f06be3c2fd5f43a4fa691f719078307 diff --git a/include/xmloff/shapeimport.hxx b/include/xmloff/shapeimport.hxx index a1263c8..4402d58 100644 --- a/include/xmloff/shapeimport.hxx +++ b/include/xmloff/shapeimport.hxx @@ -266,7 +266,7 @@ class XMLOFF_DLLPUBLIC XMLShapeImportHelper : public salhelper::SimpleReferenceO { std::unique_ptr<XMLShapeImportHelperImpl> mpImpl; - XMLShapeImportPageContextImpl* mpPageContext; + std::shared_ptr<XMLShapeImportPageContextImpl> mpPageContext; // PropertySetMappers and factory rtl::Reference<XMLSdPropHdlFactory> mpSdPropHdlFactory; diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx index 08c184c..5738e70 100644 --- a/xmloff/source/draw/shapeimport.cxx +++ b/xmloff/source/draw/shapeimport.cxx @@ -88,7 +88,7 @@ struct XMLShapeImportPageContextImpl uno::Reference < drawing::XShapes > mxShapes; - struct XMLShapeImportPageContextImpl* mpNext; + std::shared_ptr<XMLShapeImportPageContextImpl> mpNext; }; /** this class is to enable adding members to the XMLShapeImportHelper without getting incompatible */ @@ -111,7 +111,6 @@ XMLShapeImportHelper::XMLShapeImportHelper( const uno::Reference< frame::XModel>& rModel, SvXMLImportPropertyMapper *pExtMapper ) : mpImpl( new XMLShapeImportHelperImpl() ), - mpPageContext(nullptr), mpPropertySetMapper(nullptr), mpPresPagePropsMapper(nullptr), @@ -1021,8 +1020,8 @@ sal_Int32 XMLShapeImportHelper::getGluePointId( const css::uno::Reference< css:: /** this method must be calling before the first shape is imported for the given page */ void XMLShapeImportHelper::startPage( css::uno::Reference< css::drawing::XShapes >& rShapes ) { - XMLShapeImportPageContextImpl* pOldContext = mpPageContext; - mpPageContext = new XMLShapeImportPageContextImpl(); + const std::shared_ptr<XMLShapeImportPageContextImpl> pOldContext = mpPageContext; + mpPageContext = std::make_shared<XMLShapeImportPageContextImpl>(); mpPageContext->mpNext = pOldContext; mpPageContext->mxShapes = rShapes; } @@ -1036,9 +1035,7 @@ void XMLShapeImportHelper::endPage( css::uno::Reference< css::drawing::XShapes > restoreConnections(); - XMLShapeImportPageContextImpl* pNextContext = mpPageContext->mpNext; - delete mpPageContext; - mpPageContext = pNextContext; + mpPageContext = mpPageContext->mpNext; } /** defines if the import should increment the progress bar or not */ commit 8304c237c3d3538cdb597e668aa43df54d4b43c3 Author: David Tardon <[email protected]> Date: Fri Sep 9 10:39:22 2016 +0200 use std::shared_ptr Change-Id: I057b3f2ac6ec57b1a586bf450145a9690d891752 diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx index 016195f..08c184c 100644 --- a/xmloff/source/draw/shapeimport.cxx +++ b/xmloff/source/draw/shapeimport.cxx @@ -95,7 +95,7 @@ struct XMLShapeImportPageContextImpl struct XMLShapeImportHelperImpl { // context for sorting shapes - ShapeSortContext* mpSortContext; + std::shared_ptr<ShapeSortContext> mpSortContext; std::vector<ConnectionHint> maConnections; @@ -720,16 +720,16 @@ public: vector<ZOrderHint> maUnsortedList; sal_Int32 mnCurrentZ; - ShapeSortContext* mpParentContext; + std::shared_ptr<ShapeSortContext> mpParentContext; - ShapeSortContext( uno::Reference< drawing::XShapes >& rShapes, ShapeSortContext* pParentContext = nullptr ); + ShapeSortContext( uno::Reference< drawing::XShapes >& rShapes, std::shared_ptr<ShapeSortContext> pParentContext = nullptr ); void popGroupAndSort(); private: void moveShape( sal_Int32 nSourcePos, sal_Int32 nDestPos ); }; -ShapeSortContext::ShapeSortContext( uno::Reference< drawing::XShapes >& rShapes, ShapeSortContext* pParentContext ) +ShapeSortContext::ShapeSortContext( uno::Reference< drawing::XShapes >& rShapes, std::shared_ptr<ShapeSortContext> pParentContext ) : mxShapes( rShapes ), mnCurrentZ( 0 ), mpParentContext( pParentContext ) { } @@ -829,13 +829,13 @@ void ShapeSortContext::popGroupAndSort() void XMLShapeImportHelper::pushGroupForSorting( uno::Reference< drawing::XShapes >& rShapes ) { - mpImpl->mpSortContext = new ShapeSortContext( rShapes, mpImpl->mpSortContext ); + mpImpl->mpSortContext = std::make_shared<ShapeSortContext>( rShapes, mpImpl->mpSortContext ); } void XMLShapeImportHelper::popGroupAndSort() { SAL_WARN_IF( !mpImpl->mpSortContext, "xmloff", "No context to sort!" ); - if( mpImpl->mpSortContext == nullptr ) + if( !mpImpl->mpSortContext ) return; try @@ -847,10 +847,8 @@ void XMLShapeImportHelper::popGroupAndSort() OSL_FAIL("exception while sorting shapes, sorting failed!"); } - // put parent on top and delete current context, we are done - ShapeSortContext* pContext = mpImpl->mpSortContext; - mpImpl->mpSortContext = pContext->mpParentContext; - delete pContext; + // put parent on top and drop current context, we are done + mpImpl->mpSortContext = mpImpl->mpSortContext->mpParentContext; } void XMLShapeImportHelper::shapeWithZIndexAdded( css::uno::Reference< css::drawing::XShape >&, sal_Int32 nZIndex ) commit 7afc5ab572d4584f005a04cd57188a7c646b164b Author: David Tardon <[email protected]> Date: Fri Sep 9 10:32:04 2016 +0200 use std::shared_ptr to manage memory Change-Id: I3fcf285a75a1bf8252e0784c9ff4aceee64f4b5b diff --git a/xmloff/inc/animimp.hxx b/xmloff/inc/animimp.hxx index 19b9bbe..0a07b3f 100644 --- a/xmloff/inc/animimp.hxx +++ b/xmloff/inc/animimp.hxx @@ -20,6 +20,8 @@ #ifndef INCLUDED_XMLOFF_INC_ANIMIMP_HXX #define INCLUDED_XMLOFF_INC_ANIMIMP_HXX +#include <memory> + #include <xmloff/xmlictxt.hxx> #include <com/sun/star/drawing/XShapes.hpp> @@ -29,7 +31,7 @@ class AnimImpImpl; class XMLAnimationsContext : public SvXMLImportContext { - AnimImpImpl* mpImpl; + std::shared_ptr<AnimImpImpl> mpImpl; public: @@ -37,7 +39,6 @@ public: sal_uInt16 nPrfx, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList); - virtual ~XMLAnimationsContext(); virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override; diff --git a/xmloff/source/draw/animimp.cxx b/xmloff/source/draw/animimp.cxx index 0378122..6ba0a22 100644 --- a/xmloff/source/draw/animimp.cxx +++ b/xmloff/source/draw/animimp.cxx @@ -361,7 +361,7 @@ enum XMLActionKind class XMLAnimationsEffectContext : public SvXMLImportContext { public: - AnimImpImpl* mpImpl; + std::shared_ptr<AnimImpImpl> mpImpl; XMLActionKind meKind; bool mbTextEffect; @@ -383,7 +383,7 @@ public: sal_uInt16 nPrfx, const OUString& rLocalName, const Reference< XAttributeList >& xAttrList, - AnimImpImpl* pImpl); + const std::shared_ptr<AnimImpImpl>& pImpl); virtual ~XMLAnimationsEffectContext(); virtual void EndElement() override; @@ -439,7 +439,7 @@ XMLAnimationsSoundContext::~XMLAnimationsSoundContext() } -XMLAnimationsEffectContext::XMLAnimationsEffectContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLocalName, const Reference< XAttributeList >& xAttrList, AnimImpImpl* pImpl ) +XMLAnimationsEffectContext::XMLAnimationsEffectContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLocalName, const Reference< XAttributeList >& xAttrList, const std::shared_ptr<AnimImpImpl>& pImpl ) : SvXMLImportContext(rImport, nPrfx, rLocalName), mpImpl( pImpl ), meKind( XMLE_SHOW ), mbTextEffect( false ), @@ -638,13 +638,8 @@ void XMLAnimationsEffectContext::EndElement() XMLAnimationsContext::XMLAnimationsContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& ) : SvXMLImportContext(rImport, nPrfx, rLocalName) +, mpImpl(std::make_shared<AnimImpImpl>()) { - mpImpl = new AnimImpImpl(); -} - -XMLAnimationsContext::~XMLAnimationsContext() -{ - delete mpImpl; } SvXMLImportContext * XMLAnimationsContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, commit 2e0cea44050e931bf7b290980a6b8c23de6526d5 Author: David Tardon <[email protected]> Date: Fri Sep 9 10:26:03 2016 +0200 use std::unique_ptr Change-Id: I8ebbb94ae5f77fa44f46fb771f7d8ad5fc89a5bc diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx index 85e635f..102457a 100644 --- a/xmloff/source/draw/animationimport.cxx +++ b/xmloff/source/draw/animationimport.cxx @@ -53,6 +53,9 @@ #include <sax/tools/converter.hxx> #include <list> + +#include <o3tl/make_unique.hxx> + #include <xmloff/xmltypes.hxx> #include "sdpropls.hxx" #include <xmloff/xmltoken.hxx> @@ -106,12 +109,11 @@ class AnimationsImportHelperImpl private: SvXMLImport& mrImport; - SvXMLTokenMap* mpAnimationNodeTokenMap; - SvXMLTokenMap* mpAnimationNodeAttributeTokenMap; + std::unique_ptr<SvXMLTokenMap> mpAnimationNodeTokenMap; + std::unique_ptr<SvXMLTokenMap> mpAnimationNodeAttributeTokenMap; public: explicit AnimationsImportHelperImpl( SvXMLImport& rImport ); - ~AnimationsImportHelperImpl(); const SvXMLTokenMap& getAnimationNodeTokenMap(); const SvXMLTokenMap& getAnimationNodeAttributeTokenMap(); @@ -127,16 +129,8 @@ public: }; AnimationsImportHelperImpl::AnimationsImportHelperImpl( SvXMLImport& rImport ) -: mrImport( rImport ), - mpAnimationNodeTokenMap( nullptr ), - mpAnimationNodeAttributeTokenMap( nullptr ) -{ -} - -AnimationsImportHelperImpl::~AnimationsImportHelperImpl() +: mrImport( rImport ) { - delete mpAnimationNodeTokenMap; - delete mpAnimationNodeAttributeTokenMap; } const SvXMLTokenMap& AnimationsImportHelperImpl::getAnimationNodeTokenMap() @@ -159,7 +153,7 @@ const SvXMLTokenMap& AnimationsImportHelperImpl::getAnimationNodeTokenMap() XML_TOKEN_MAP_END }; - mpAnimationNodeTokenMap = new SvXMLTokenMap( aAnimationNodeTokenMap ); + mpAnimationNodeTokenMap = o3tl::make_unique<SvXMLTokenMap>( aAnimationNodeTokenMap ); } return *mpAnimationNodeTokenMap; @@ -278,7 +272,7 @@ const SvXMLTokenMap& AnimationsImportHelperImpl::getAnimationNodeAttributeTokenM XML_TOKEN_MAP_END }; - mpAnimationNodeAttributeTokenMap = new SvXMLTokenMap( aAnimationNodeAttributeTokenMap ); + mpAnimationNodeAttributeTokenMap = o3tl::make_unique<SvXMLTokenMap>( aAnimationNodeAttributeTokenMap ); } return *mpAnimationNodeAttributeTokenMap; commit 109ea4752b734683483aef5154d8debca2d300a3 Author: David Tardon <[email protected]> Date: Fri Sep 9 10:25:31 2016 +0200 use std::shared_ptr Change-Id: Ib285d2445077a0263a09b36bf1a6fa1fe7f59496 diff --git a/xmloff/inc/animationimport.hxx b/xmloff/inc/animationimport.hxx index afe509c..cea9782 100644 --- a/xmloff/inc/animationimport.hxx +++ b/xmloff/inc/animationimport.hxx @@ -20,6 +20,8 @@ #ifndef INCLUDED_XMLOFF_INC_ANIMATIONIMPORT_HXX #define INCLUDED_XMLOFF_INC_ANIMATIONIMPORT_HXX +#include <memory> + #include <xmloff/xmlictxt.hxx> #include <com/sun/star/animations/XAnimationNode.hpp> @@ -31,7 +33,7 @@ class AnimationsImportHelperImpl; class AnimationNodeContext : public SvXMLImportContext { - AnimationsImportHelperImpl* mpHelper; + std::shared_ptr<AnimationsImportHelperImpl> mpHelper; bool mbRootContext; css::uno::Reference< css::animations::XAnimationNode > mxNode; @@ -45,8 +47,7 @@ public: sal_uInt16 nPrfx, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList, - AnimationsImportHelperImpl* mpImpl = nullptr ); - virtual ~AnimationNodeContext(); + std::shared_ptr<AnimationsImportHelperImpl> pImpl = nullptr ); virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx index a9dd0f7..85e635f 100644 --- a/xmloff/source/draw/animationimport.cxx +++ b/xmloff/source/draw/animationimport.cxx @@ -625,16 +625,16 @@ AnimationNodeContext::AnimationNodeContext( const Reference< XAnimationNode >& xParentNode, SvXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList, - AnimationsImportHelperImpl* pHelper /* = NULL */ ) + std::shared_ptr<AnimationsImportHelperImpl> pHelper ) : SvXMLImportContext(rImport, nPrfx, rLocalName), mpHelper( pHelper ), - mbRootContext( pHelper == nullptr ) + mbRootContext( !pHelper ) { try { if( mbRootContext ) { - mpHelper = new AnimationsImportHelperImpl( rImport ); + mpHelper = std::make_shared<AnimationsImportHelperImpl>( rImport ); mxNode = xParentNode; } else @@ -720,12 +720,6 @@ AnimationNodeContext::AnimationNodeContext( } } -AnimationNodeContext::~AnimationNodeContext() -{ - if( mbRootContext ) - delete mpHelper; -} - void AnimationNodeContext::StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& ) { // code of StartElement is moved to init_node that is now called commit b42af6cee1d2c8a2bdb37d1a6e7e53704b839ee2 Author: David Tardon <[email protected]> Date: Fri Sep 9 10:15:43 2016 +0200 astyle Change-Id: Ib237a5f02b64b93bd2994cd98f29938c3a0904ae diff --git a/writerperfect/inc/WPXSvInputStream.hxx b/writerperfect/inc/WPXSvInputStream.hxx index 06eddfd..9bbefbb 100644 --- a/writerperfect/inc/WPXSvInputStream.hxx +++ b/writerperfect/inc/WPXSvInputStream.hxx @@ -38,7 +38,7 @@ class WPXSvInputStreamImpl; class WRITERPERFECT_DLLPUBLIC WPXSvInputStream : public librevenge::RVNGInputStream { public: - WPXSvInputStream(css::uno::Reference< css::io::XInputStream > const & xStream); + WPXSvInputStream(css::uno::Reference< css::io::XInputStream > const &xStream); virtual ~WPXSvInputStream(); virtual bool isStructured() override; diff --git a/writerperfect/source/calc/StarOfficeCalcImportFilter.cxx b/writerperfect/source/calc/StarOfficeCalcImportFilter.cxx index 5accde1..5ed92db 100644 --- a/writerperfect/source/calc/StarOfficeCalcImportFilter.cxx +++ b/writerperfect/source/calc/StarOfficeCalcImportFilter.cxx @@ -81,7 +81,7 @@ throw (RuntimeException, std::exception) Sequence< OUString > SAL_CALL StarOfficeCalcImportFilter::getSupportedServiceNames() throw (RuntimeException, std::exception) { - return Sequence< OUString >{"com.sun.star.document.ImportFilter", "com.sun.star.document.ExtendedTypeDetection"}; + return Sequence< OUString > {"com.sun.star.document.ImportFilter", "com.sun.star.document.ExtendedTypeDetection"}; } extern "C" diff --git a/writerperfect/source/common/WPXSvInputStream.cxx b/writerperfect/source/common/WPXSvInputStream.cxx index d23fc6c..f6bf586 100644 --- a/writerperfect/source/common/WPXSvInputStream.cxx +++ b/writerperfect/source/common/WPXSvInputStream.cxx @@ -143,7 +143,7 @@ struct OLEStorageImpl void initialize(SvStream *pStream); tools::SvRef<SotStorageStream> getStream(const rtl::OUString &rPath); - tools::SvRef<SotStorageStream> const & getStream(std::size_t nId); + tools::SvRef<SotStorageStream> const &getStream(std::size_t nId); private: void traverse(const tools::SvRef<SotStorage> &rStorage, const rtl::OUString &rPath); @@ -202,7 +202,7 @@ tools::SvRef<SotStorageStream> OLEStorageImpl::getStream(const rtl::OUString &rP return maStreams[aIt->second].stream.ref; } -tools::SvRef<SotStorageStream> const & OLEStorageImpl::getStream(const std::size_t nId) +tools::SvRef<SotStorageStream> const &OLEStorageImpl::getStream(const std::size_t nId) { if (!maStreams[nId].stream.ref.Is()) maStreams[nId].stream.ref = createStream(rtl::OStringToOUString(maStreams[nId].name, RTL_TEXTENCODING_UTF8)); @@ -400,7 +400,7 @@ class WPXSvInputStreamImpl { public: explicit WPXSvInputStreamImpl(css::uno::Reference< - css::io::XInputStream > const & xStream); + css::io::XInputStream > const &xStream); ~WPXSvInputStreamImpl(); bool isStructured(); @@ -442,7 +442,7 @@ public: unsigned long mnReadBufferPos; }; -WPXSvInputStreamImpl::WPXSvInputStreamImpl(Reference< XInputStream > const & xStream) : +WPXSvInputStreamImpl::WPXSvInputStreamImpl(Reference< XInputStream > const &xStream) : mxStream(xStream), mxSeekable(xStream, UNO_QUERY), maData(0), @@ -809,7 +809,7 @@ void WPXSvInputStreamImpl::ensureZipIsInitialized() mpZipStorage->initialize(); } -WPXSvInputStream::WPXSvInputStream(Reference< XInputStream > const & xStream) : +WPXSvInputStream::WPXSvInputStream(Reference< XInputStream > const &xStream) : mpImpl(new WPXSvInputStreamImpl(xStream)) { } diff --git a/writerperfect/source/draw/StarOfficeDrawImportFilter.cxx b/writerperfect/source/draw/StarOfficeDrawImportFilter.cxx index 57dfb7f..bded190 100644 --- a/writerperfect/source/draw/StarOfficeDrawImportFilter.cxx +++ b/writerperfect/source/draw/StarOfficeDrawImportFilter.cxx @@ -83,7 +83,7 @@ throw (RuntimeException, std::exception) Sequence< OUString > SAL_CALL StarOfficeDrawImportFilter::getSupportedServiceNames() throw (RuntimeException, std::exception) { - return Sequence< OUString >{"com.sun.star.document.ImportFilter", "com.sun.star.document.ExtendedTypeDetection"}; + return Sequence< OUString > {"com.sun.star.document.ImportFilter", "com.sun.star.document.ExtendedTypeDetection"}; } extern "C" diff --git a/writerperfect/source/draw/ZMFImportFilter.cxx b/writerperfect/source/draw/ZMFImportFilter.cxx index 0eabfc1..8c6e029 100644 --- a/writerperfect/source/draw/ZMFImportFilter.cxx +++ b/writerperfect/source/draw/ZMFImportFilter.cxx @@ -54,7 +54,7 @@ throw (RuntimeException, std::exception) Sequence< OUString > SAL_CALL ZMFImportFilter::getSupportedServiceNames() throw (RuntimeException, std::exception) { - return Sequence< OUString >{"com.sun.star.document.ImportFilter", "com.sun.star.document.ExtendedTypeDetection"}; + return Sequence< OUString > {"com.sun.star.document.ImportFilter", "com.sun.star.document.ExtendedTypeDetection"}; } extern "C" diff --git a/writerperfect/source/writer/StarOfficeWriterImportFilter.cxx b/writerperfect/source/writer/StarOfficeWriterImportFilter.cxx index e0580dc..9ee289e 100644 --- a/writerperfect/source/writer/StarOfficeWriterImportFilter.cxx +++ b/writerperfect/source/writer/StarOfficeWriterImportFilter.cxx @@ -40,9 +40,11 @@ bool StarOfficeWriterImportFilter::doImportDocument(librevenge::RVNGInputStream STOFFDocument::Kind docKind = STOFFDocument::STOFF_K_UNKNOWN; const STOFFDocument::Confidence confidence = STOFFDocument::isFileFormatSupported(&rInput, docKind); OString aUtf8Passwd; - if (confidence==STOFFDocument::STOFF_C_SUPPORTED_ENCRYPTION) { + if (confidence==STOFFDocument::STOFF_C_SUPPORTED_ENCRYPTION) + { // try to ask for a password - try { + try + { ScopedVclPtrInstance< SfxPasswordDialog > aPasswdDlg(nullptr); aPasswdDlg->SetMinLen(0); if (!aPasswdDlg->Execute()) @@ -50,7 +52,8 @@ bool StarOfficeWriterImportFilter::doImportDocument(librevenge::RVNGInputStream OUString aPasswd = aPasswdDlg->GetPassword(); aUtf8Passwd = OUStringToOString(aPasswd, RTL_TEXTENCODING_UTF8); } - catch (...) { + catch (...) + { // ok, we will probably guess it } } @@ -101,7 +104,7 @@ throw (RuntimeException, std::exception) Sequence< OUString > SAL_CALL StarOfficeWriterImportFilter::getSupportedServiceNames() throw (RuntimeException, std::exception) { - return Sequence< OUString >{"com.sun.star.document.ImportFilter", "com.sun.star.document.ExtendedTypeDetection"}; + return Sequence< OUString > {"com.sun.star.document.ImportFilter", "com.sun.star.document.ExtendedTypeDetection"}; } extern "C" commit 05adc066ec8cbc0609e26ba0ddb2d8e766549309 Author: David Tardon <[email protected]> Date: Fri Sep 9 10:12:44 2016 +0200 use std::unique_ptr Change-Id: Idd19671bb2eab12cac2011160c617bf3f43659d7 diff --git a/writerperfect/qa/unit/DirectoryStreamTest.cxx b/writerperfect/qa/unit/DirectoryStreamTest.cxx index 9201cdd..79646ed 100644 --- a/writerperfect/qa/unit/DirectoryStreamTest.cxx +++ b/writerperfect/qa/unit/DirectoryStreamTest.cxx @@ -13,6 +13,8 @@ #include <comphelper/processfactory.hxx> +#include <o3tl/make_unique.hxx> + #include <ucbhelper/content.hxx> #include <test/bootstrapfixture.hxx> @@ -62,14 +64,14 @@ static const char g_aDirPath[] = "/writerperfect/qa/unit/data/stream/test.dir"; static const char g_aNondirPath[] = "/writerperfect/qa/unit/data/stream/test.dir/mimetype"; static const char g_aNonexistentPath[] = "/writerperfect/qa/unit/data/stream/foo/bar"; -DirectoryStream *createForParent(const css::uno::Reference<css::ucb::XContent> &xContent) +std::unique_ptr<DirectoryStream> createForParent(const css::uno::Reference<css::ucb::XContent> &xContent) { try { if (!xContent.is()) return nullptr; - DirectoryStream *pDir(nullptr); + unique_ptr<DirectoryStream> pDir; const uno::Reference<css::container::XChild> xChild(xContent, uno::UNO_QUERY); if (xChild.is()) @@ -77,12 +79,9 @@ DirectoryStream *createForParent(const css::uno::Reference<css::ucb::XContent> & const uno::Reference<ucb::XContent> xDirContent(xChild->getParent(), uno::UNO_QUERY); if (xDirContent.is()) { - pDir = new writerperfect::DirectoryStream(xDirContent); + pDir = o3tl::make_unique<DirectoryStream>(xDirContent); if (!pDir->isStructured()) - { - delete pDir; - pDir = nullptr; - } + pDir.reset(); } } commit 1eb1ff0faa395ae51696662c85df5e654331b94c Author: David Tardon <[email protected]> Date: Fri Sep 9 10:07:47 2016 +0200 use std::unique_ptr Change-Id: I94aafd665116d01d2f6134c4b41ab70c34e23ab6 diff --git a/include/xmloff/SchXMLImportHelper.hxx b/include/xmloff/SchXMLImportHelper.hxx index 0e513e0..a842fd4 100644 --- a/include/xmloff/SchXMLImportHelper.hxx +++ b/include/xmloff/SchXMLImportHelper.hxx @@ -19,6 +19,8 @@ #ifndef INCLUDED_XMLOFF_SCHXMLIMPORTHELPER_HXX #define INCLUDED_XMLOFF_SCHXMLIMPORTHELPER_HXX +#include <memory> + #include <salhelper/simplereferenceobject.hxx> #include <xmloff/families.hxx> #include <com/sun/star/util/XStringMapping.hpp> @@ -66,23 +68,22 @@ private: css::uno::Reference< css::chart::XChartDocument > mxChartDoc; SvXMLStylesContext* mpAutoStyles; - SvXMLTokenMap* mpChartDocElemTokenMap; - SvXMLTokenMap* mpTableElemTokenMap; - SvXMLTokenMap* mpChartElemTokenMap; - SvXMLTokenMap* mpPlotAreaElemTokenMap; - SvXMLTokenMap* mpSeriesElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpChartDocElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpTableElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpChartElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpPlotAreaElemTokenMap; + std::unique_ptr<SvXMLTokenMap> mpSeriesElemTokenMap; - SvXMLTokenMap* mpChartAttrTokenMap; - SvXMLTokenMap* mpPlotAreaAttrTokenMap; - SvXMLTokenMap* mpCellAttrTokenMap; - SvXMLTokenMap* mpSeriesAttrTokenMap; - SvXMLTokenMap* mpPropMappingAttrTokenMap; - SvXMLTokenMap* mpRegEquationAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpChartAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpPlotAreaAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpCellAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpSeriesAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpPropMappingAttrTokenMap; + std::unique_ptr<SvXMLTokenMap> mpRegEquationAttrTokenMap; public: SchXMLImportHelper(); - virtual ~SchXMLImportHelper(); /** get the context for reading the <chart:chart> element with subelements. The result is stored in the XModel given if it also implements diff --git a/xmloff/source/chart/SchXMLImport.cxx b/xmloff/source/chart/SchXMLImport.cxx index 17645c9..373efbe 100644 --- a/xmloff/source/chart/SchXMLImport.cxx +++ b/xmloff/source/chart/SchXMLImport.cxx @@ -24,6 +24,7 @@ #include "SchXMLTools.hxx" #include "facreg.hxx" +#include <o3tl/make_unique.hxx> #include <rtl/ustrbuf.hxx> #include <comphelper/processfactory.hxx> #include <xmloff/nmspmap.hxx> @@ -85,37 +86,8 @@ private: // attribute maps SchXMLImportHelper::SchXMLImportHelper() : - mpAutoStyles( nullptr ), - - mpChartDocElemTokenMap( nullptr ), - mpTableElemTokenMap( nullptr ), - mpChartElemTokenMap( nullptr ), - mpPlotAreaElemTokenMap( nullptr ), - mpSeriesElemTokenMap( nullptr ), - - mpChartAttrTokenMap( nullptr ), - mpPlotAreaAttrTokenMap( nullptr ), - mpCellAttrTokenMap( nullptr ), - mpSeriesAttrTokenMap( nullptr ), - mpPropMappingAttrTokenMap( nullptr ), - mpRegEquationAttrTokenMap( nullptr ) -{ -} - -SchXMLImportHelper::~SchXMLImportHelper() + mpAutoStyles( nullptr ) { - // delete token maps - delete mpChartDocElemTokenMap; - delete mpTableElemTokenMap; - delete mpChartElemTokenMap; - delete mpPlotAreaElemTokenMap; - delete mpSeriesElemTokenMap; - - delete mpChartAttrTokenMap; - delete mpPlotAreaAttrTokenMap; - delete mpCellAttrTokenMap; - delete mpSeriesAttrTokenMap; - delete mpPropMappingAttrTokenMap; } SvXMLImportContext* SchXMLImportHelper::CreateChartContext( @@ -171,7 +143,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetDocElemTokenMap() XML_TOKEN_MAP_END }; - mpChartDocElemTokenMap = new SvXMLTokenMap( aDocElemTokenMap ); + mpChartDocElemTokenMap = o3tl::make_unique<SvXMLTokenMap>( aDocElemTokenMap ); } // if( ! mpChartDocElemTokenMap ) return *mpChartDocElemTokenMap; @@ -192,7 +164,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetTableElemTokenMap() XML_TOKEN_MAP_END }; - mpTableElemTokenMap = new SvXMLTokenMap( aTableElemTokenMap ); + mpTableElemTokenMap = o3tl::make_unique<SvXMLTokenMap>( aTableElemTokenMap ); } // if( ! mpTableElemTokenMap ) return *mpTableElemTokenMap; @@ -212,7 +184,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetChartElemTokenMap() XML_TOKEN_MAP_END }; - mpChartElemTokenMap = new SvXMLTokenMap( aChartElemTokenMap ); + mpChartElemTokenMap = o3tl::make_unique<SvXMLTokenMap>( aChartElemTokenMap ); } // if( ! mpChartElemTokenMap ) return *mpChartElemTokenMap; @@ -237,7 +209,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetPlotAreaElemTokenMap() XML_TOKEN_MAP_END }; - mpPlotAreaElemTokenMap = new SvXMLTokenMap( aPlotAreaElemTokenMap ); + mpPlotAreaElemTokenMap = o3tl::make_unique<SvXMLTokenMap>( aPlotAreaElemTokenMap ); } // if( ! mpPlotAreaElemTokenMap ) return *mpPlotAreaElemTokenMap; @@ -258,7 +230,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetSeriesElemTokenMap() XML_TOKEN_MAP_END }; - mpSeriesElemTokenMap = new SvXMLTokenMap( aSeriesElemTokenMap ); + mpSeriesElemTokenMap = o3tl::make_unique<SvXMLTokenMap>( aSeriesElemTokenMap ); } // if( ! mpSeriesElemTokenMap ) return *mpSeriesElemTokenMap; @@ -280,7 +252,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetChartAttrTokenMap() XML_TOKEN_MAP_END }; - mpChartAttrTokenMap = new SvXMLTokenMap( aChartAttrTokenMap ); + mpChartAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>( aChartAttrTokenMap ); } // if( ! mpChartAttrTokenMap ) return *mpChartAttrTokenMap; @@ -313,7 +285,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetPlotAreaAttrTokenMap() XML_TOKEN_MAP_END }; - mpPlotAreaAttrTokenMap = new SvXMLTokenMap( aPlotAreaAttrTokenMap ); + mpPlotAreaAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>( aPlotAreaAttrTokenMap ); } // if( ! mpPlotAreaAttrTokenMap ) return *mpPlotAreaAttrTokenMap; @@ -330,7 +302,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetCellAttrTokenMap() XML_TOKEN_MAP_END }; - mpCellAttrTokenMap = new SvXMLTokenMap( aCellAttrTokenMap ); + mpCellAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>( aCellAttrTokenMap ); } // if( ! mpCellAttrTokenMap ) return *mpCellAttrTokenMap; @@ -351,7 +323,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetSeriesAttrTokenMap() XML_TOKEN_MAP_END }; - mpSeriesAttrTokenMap = new SvXMLTokenMap( aSeriesAttrTokenMap ); + mpSeriesAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>( aSeriesAttrTokenMap ); } // if( ! mpSeriesAttrTokenMap ) return *mpSeriesAttrTokenMap; @@ -368,7 +340,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetPropMappingAttrTokenMap() XML_TOKEN_MAP_END }; - mpPropMappingAttrTokenMap = new SvXMLTokenMap( aPropMappingAttrTokenMap ); + mpPropMappingAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>( aPropMappingAttrTokenMap ); } return *mpPropMappingAttrTokenMap; @@ -388,7 +360,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetRegEquationAttrTokenMap() XML_TOKEN_MAP_END }; - mpRegEquationAttrTokenMap = new SvXMLTokenMap( aRegressionEquationAttrTokenMap ); + mpRegEquationAttrTokenMap = o3tl::make_unique<SvXMLTokenMap>( aRegressionEquationAttrTokenMap ); } // if( ! mpRegEquationAttrTokenMap ) return *mpRegEquationAttrTokenMap; commit 260cbd3d3c86cd306129f3db290fed8b993b2909 Author: David Tardon <[email protected]> Date: Fri Sep 9 10:02:22 2016 +0200 use std::unique_ptr Change-Id: I21572ac8afb1c514ff78b1e23c7fb9259f0b01fb diff --git a/xmloff/source/chart/MultiPropertySetHandler.hxx b/xmloff/source/chart/MultiPropertySetHandler.hxx index e263790..7996bfa 100644 --- a/xmloff/source/chart/MultiPropertySetHandler.hxx +++ b/xmloff/source/chart/MultiPropertySetHandler.hxx @@ -20,6 +20,9 @@ #ifndef INCLUDED_XMLOFF_SOURCE_CHART_MULTIPROPERTYSETHANDLER_HXX #define INCLUDED_XMLOFF_SOURCE_CHART_MULTIPROPERTYSETHANDLER_HXX +#include <memory> + +#include <o3tl/make_unique.hxx> #include <rtl/ustring.hxx> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/beans/XMultiPropertySet.hpp> @@ -123,7 +126,6 @@ public: */ explicit MultiPropertySetHandler (css::uno::Reference< css::uno::XInterface> const & xObject); - ~MultiPropertySetHandler(); /** @descr Add a property to handle. The type given implicitly by the reference to a variable is used to create an instance of the PropertyWrapper template class. @@ -133,7 +135,7 @@ public: */ template<class T> void Add (const OUString & sName, T& rValue) { - aPropertyList[sName] = new PropertyWrapper<T> (sName, rValue); + aPropertyList[sName] = o3tl::make_unique<PropertyWrapper<T>>(sName, rValue); } /** @descr Try to get the values for all properties added with the Add @@ -168,7 +170,7 @@ private: PropertyWrapper. It uses OUStringComparison for sorting the property names. */ - ::std::map< OUString, PropertyWrapperBase*, OUStringComparison> aPropertyList; + ::std::map< OUString, std::unique_ptr<PropertyWrapperBase>, OUStringComparison> aPropertyList; /// The object from which to get the property values. css::uno::Reference< css::uno::XInterface> mxObject; @@ -180,19 +182,11 @@ MultiPropertySetHandler::MultiPropertySetHandler (css::uno::Reference< { } -MultiPropertySetHandler::~MultiPropertySetHandler() -{ - ::std::map< OUString, PropertyWrapperBase*, OUStringComparison>::iterator I; - for (I=aPropertyList.begin(); I!=aPropertyList.end(); ++I) - delete I->second; -} - bool MultiPropertySetHandler::GetProperties() { - ::std::map< OUString, PropertyWrapperBase*, OUStringComparison>::iterator I; css::uno::Sequence< OUString> aNameList (aPropertyList.size()); - int i; - for (I=aPropertyList.begin(),i=0; I!=aPropertyList.end(); ++I) + int i = 0; + for (auto I=aPropertyList.begin(); I!=aPropertyList.end(); ++I) aNameList[i++] = I->second->msName; if ( ! MultiGet(aNameList)) if ( ! SingleGet(aNameList)) @@ -208,11 +202,10 @@ bool MultiPropertySetHandler::MultiGet (const css::uno::Sequence< if (xMultiSet.is()) try { - ::std::map< OUString, PropertyWrapperBase*, OUStringComparison>::iterator I; - int i; + int i = 0; css::uno::Sequence< css::uno::Any> aValueList = xMultiSet->getPropertyValues (rNameList); - for (I=aPropertyList.begin(),i=0; I!=aPropertyList.end(); ++I) + for (auto I=aPropertyList.begin(); I!=aPropertyList.end(); ++I) I->second->SetValue (aValueList[i++]); } catch (const css::beans::UnknownPropertyException&) @@ -233,9 +226,8 @@ bool MultiPropertySetHandler::SingleGet (const css::uno::Sequence< if (xSingleSet.is()) try { - ::std::map< OUString, PropertyWrapperBase*, OUStringComparison>::iterator I; - int i; - for (I=aPropertyList.begin(),i=0; I!=aPropertyList.end(); ++I) + int i = 0; + for (auto I=aPropertyList.begin(); I!=aPropertyList.end(); ++I) I->second->SetValue (xSingleSet->getPropertyValue (rNameList[i++])); } catch (const css::beans::UnknownPropertyException&) _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
