include/xmloff/XMLEventExport.hxx | 8 ++++++-- xmloff/source/core/xmlexp.cxx | 5 +++-- xmloff/source/script/XMLEventExport.cxx | 13 +++---------- 3 files changed, 12 insertions(+), 14 deletions(-)
New commits: commit 35e1658e7275777ee94902b5014fd93b8daf975c Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Mon Sep 17 09:39:45 2018 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu Sep 20 15:15:58 2018 +0200 loplugin:useuniqueptr in XMLEventExport Change-Id: I29a7c565db576afa4dbd0e0fbd1dfd99f9c989fc Reviewed-on: https://gerrit.libreoffice.org/60618 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/include/xmloff/XMLEventExport.hxx b/include/xmloff/XMLEventExport.hxx index 797fc4a6dde3..8dba84465ace 100644 --- a/include/xmloff/XMLEventExport.hxx +++ b/include/xmloff/XMLEventExport.hxx @@ -29,6 +29,7 @@ #include <xmloff/xmlevent.hxx> #include <map> +#include <memory> class SvXMLExport; namespace com { namespace sun { namespace star { @@ -38,7 +39,7 @@ namespace com { namespace sun { namespace star { namespace beans { struct PropertyValue; } } } } -typedef ::std::map< OUString, XMLEventExportHandler* > HandlerMap; +typedef ::std::map< OUString, std::unique_ptr<XMLEventExportHandler> > HandlerMap; typedef ::std::map< OUString, XMLEventName > NameMap; /** @@ -69,13 +70,16 @@ public: XMLEventExport(SvXMLExport& rExport); ~XMLEventExport(); + XMLEventExport& operator=( XMLEventExport const & ) = delete; // MSVC2017 workaround + XMLEventExport( XMLEventExport const & ) = delete; // MSVC2017 workaround + /// register an EventExportHandler for a particular script type /// /// The handlers will be deleted when the object is destroyed, hence /// no pointers to a handler registered with AddHandler() should be /// held by anyone. void AddHandler( const OUString& rName, - XMLEventExportHandler* rHandler ); + std::unique_ptr<XMLEventExportHandler> pHandler ); /// register additional event names void AddTranslationTable( const XMLEventNameTranslation* pTransTable ); diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx index fc30db7b8bb2..c3b82f214246 100644 --- a/xmloff/source/core/xmlexp.cxx +++ b/xmloff/source/core/xmlexp.cxx @@ -95,6 +95,7 @@ #include <comphelper/xmltools.hxx> #include <comphelper/graphicmimetype.hxx> +#include <o3tl/make_unique.hxx> using namespace ::osl; using namespace ::com::sun::star; @@ -2010,8 +2011,8 @@ XMLEventExport& SvXMLExport::GetEventExport() mpEventExport.reset( new XMLEventExport(*this) ); // and register standard handlers + names - mpEventExport->AddHandler("StarBasic", new XMLStarBasicExportHandler()); - mpEventExport->AddHandler("Script", new XMLScriptExportHandler()); + mpEventExport->AddHandler("StarBasic", o3tl::make_unique<XMLStarBasicExportHandler>()); + mpEventExport->AddHandler("Script", o3tl::make_unique<XMLScriptExportHandler>()); mpEventExport->AddTranslationTable(aStandardEventTable); } diff --git a/xmloff/source/script/XMLEventExport.cxx b/xmloff/source/script/XMLEventExport.cxx index 64e47a45919c..72d550527bd1 100644 --- a/xmloff/source/script/XMLEventExport.cxx +++ b/xmloff/source/script/XMLEventExport.cxx @@ -52,21 +52,14 @@ XMLEventExport::XMLEventExport(SvXMLExport& rExp) : XMLEventExport::~XMLEventExport() { // delete all handlers - for( auto& rEntry : aHandlerMap ) - { - delete rEntry.second; - } aHandlerMap.clear(); } void XMLEventExport::AddHandler( const OUString& rName, - XMLEventExportHandler* pHandler ) + std::unique_ptr<XMLEventExportHandler> pHandler ) { - DBG_ASSERT(pHandler != nullptr, "Need EventExportHandler"); - if (pHandler != nullptr) - { - aHandlerMap[rName] = pHandler; - } + assert(pHandler); + aHandlerMap[rName] = std::move(pHandler); } void XMLEventExport::AddTranslationTable( _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits