forms/source/component/DatabaseForm.cxx | 10 ++++------ include/tools/inetmsg.hxx | 15 ++++++++------- tools/source/inet/inetmsg.cxx | 13 ++++--------- 3 files changed, 16 insertions(+), 22 deletions(-)
New commits: commit 01b9fdb2712e1a10e9a24b11976bb4fb94ac5bd9 Author: Noel Grandin <[email protected]> Date: Tue Oct 17 12:04:45 2017 +0200 loplugin:useuniqueptr in tools/inetmsg.hxx Change-Id: Ifdf0da7f59af1777f214cbafeb75b46136775f67 Reviewed-on: https://gerrit.libreoffice.org/43450 Tested-by: Jenkins <[email protected]> Reviewed-by: Noel Grandin <[email protected]> diff --git a/forms/source/component/DatabaseForm.cxx b/forms/source/component/DatabaseForm.cxx index 4c2b039442cc..73bbd8a8afcc 100644 --- a/forms/source/component/DatabaseForm.cxx +++ b/forms/source/component/DatabaseForm.cxx @@ -938,10 +938,8 @@ void ODatabaseForm::Encode( OUString& rString ) void ODatabaseForm::InsertTextPart( INetMIMEMessage& rParent, const OUString& rName, const OUString& rData ) { - // Create part as MessageChild - INetMIMEMessage* pChild = new INetMIMEMessage(); - + std::unique_ptr<INetMIMEMessage> pChild(new INetMIMEMessage); // Header //TODO: Encode rName into a properly formatted Content-Disposition header @@ -965,7 +963,7 @@ void ODatabaseForm::InsertTextPart( INetMIMEMessage& rParent, const OUString& rN pStream->Flush(); pStream->Seek( 0 ); pChild->SetDocumentLB( new SvLockBytes(pStream, true) ); - rParent.AttachChild( *pChild ); + rParent.AttachChild( std::move(pChild) ); } @@ -1005,7 +1003,7 @@ bool ODatabaseForm::InsertFilePart( INetMIMEMessage& rParent, const OUString& rN // Create part as MessageChild - INetMIMEMessage* pChild = new INetMIMEMessage; + std::unique_ptr<INetMIMEMessage> pChild(new INetMIMEMessage); // Header @@ -1025,7 +1023,7 @@ bool ODatabaseForm::InsertFilePart( INetMIMEMessage& rParent, const OUString& rN // Body pChild->SetDocumentLB( new SvLockBytes(pStream, true) ); - rParent.AttachChild( *pChild ); + rParent.AttachChild( std::move(pChild) ); return true; } diff --git a/include/tools/inetmsg.hxx b/include/tools/inetmsg.hxx index bb99ee3296be..e1b26dbe43b7 100644 --- a/include/tools/inetmsg.hxx +++ b/include/tools/inetmsg.hxx @@ -28,6 +28,7 @@ #include <vector> #include <map> +#include <memory> class DateTime; @@ -72,14 +73,15 @@ enum class InetMessageMime class SAL_WARN_UNUSED TOOLS_DLLPUBLIC INetMIMEMessage { - ::std::vector< INetMessageHeader* > + ::std::vector< std::unique_ptr<INetMessageHeader> > m_aHeaderList; SvLockBytesRef m_xDocLB; ::std::map<InetMessageMime, sal_uIntPtr> m_nMIMEIndex; INetMIMEMessage* pParent; - ::std::vector< INetMIMEMessage* > aChildren; + ::std::vector< std::unique_ptr<INetMIMEMessage> > + aChildren; OString m_aBoundary; OUString GetHeaderValue_Impl ( @@ -99,12 +101,11 @@ class SAL_WARN_UNUSED TOOLS_DLLPUBLIC INetMIMEMessage if (m_aHeaderList.size() <= rnIndex) { rnIndex = m_aHeaderList.size(); - m_aHeaderList.push_back( p ); + m_aHeaderList.emplace_back( p ); } else { - delete m_aHeaderList[ rnIndex ]; - m_aHeaderList[ rnIndex ] = p; + m_aHeaderList[ rnIndex ].reset(p); } } @@ -170,12 +171,12 @@ public: INetMIMEMessage* GetChild (sal_uIntPtr nIndex) const { - return ( nIndex < aChildren.size() ) ? aChildren[ nIndex ] : nullptr; + return ( nIndex < aChildren.size() ) ? aChildren[ nIndex ].get() : nullptr; } INetMIMEMessage* GetParent() const { return pParent; } void EnableAttachMultipartFormDataChild(); - void AttachChild( INetMIMEMessage& rChildMsg ); + void AttachChild( std::unique_ptr<INetMIMEMessage> pChildMsg ); const OString& GetMultipartBoundary() const { return m_aBoundary; } }; diff --git a/tools/source/inet/inetmsg.cxx b/tools/source/inet/inetmsg.cxx index 704c44fad587..b3dc426ad7b6 100644 --- a/tools/source/inet/inetmsg.cxx +++ b/tools/source/inet/inetmsg.cxx @@ -218,12 +218,6 @@ INetMIMEMessage::INetMIMEMessage() INetMIMEMessage::~INetMIMEMessage() { - for (auto i: m_aHeaderList) { - delete i; - } - for (auto i: aChildren) { - delete i; - } } void INetMIMEMessage::SetMIMEVersion (const OUString& rVersion) @@ -293,12 +287,13 @@ void INetMIMEMessage::EnableAttachMultipartFormDataChild() SetContentTransferEncoding("7bit"); } -void INetMIMEMessage::AttachChild(INetMIMEMessage& rChildMsg) +void INetMIMEMessage::AttachChild(std::unique_ptr<INetMIMEMessage> pChildMsg) { + assert(IsContainer()); if (IsContainer()) { - rChildMsg.pParent = this; - aChildren.push_back( &rChildMsg ); + pChildMsg->pParent = this; + aChildren.push_back( std::move(pChildMsg) ); } } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
