From da2d11d2efb1c0baaa80b9d7052f7c8da5b5bf45 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Mon, 7 Jan 2019 08:35:52 +0200 Subject: use unique_ptr in BenOpenContainer Change-Id: Idc9d728e711f70cc11974020aa507552f31d4c9c Reviewed-on: https://gerrit.libreoffice.org/65919 Tested-by: Jenkins Reviewed-by: Noel Grandin --- lotuswordpro/source/filter/bencont.cxx | 7 +++---- lotuswordpro/source/filter/bento.hxx | 3 ++- lotuswordpro/source/filter/lwpfilter.cxx | 4 +--- lotuswordpro/source/filter/lwpgrfobj.cxx | 13 ++++--------- 4 files changed, 10 insertions(+), 17 deletions(-) (limited to 'lotuswordpro') diff --git a/lotuswordpro/source/filter/bencont.cxx b/lotuswordpro/source/filter/bencont.cxx index 06be40c8a614..ceed08c55020 100644 --- a/lotuswordpro/source/filter/bencont.cxx +++ b/lotuswordpro/source/filter/bencont.cxx @@ -70,7 +70,7 @@ const char gsBenMagicBytes[] = BEN_MAGIC_BYTES; * @param pointer to pointer of Bento Container object * @return error code */ -sal_uLong BenOpenContainer(LwpSvStream * pStream, LtcBenContainer ** ppContainer) +sal_uLong BenOpenContainer(LwpSvStream * pStream, std::unique_ptr* ppContainer) { *ppContainer = nullptr; @@ -79,14 +79,13 @@ sal_uLong BenOpenContainer(LwpSvStream * pStream, LtcBenContainer ** ppContainer return BenErr_ContainerWithNoObjects; } - LtcBenContainer * pContainer = new LtcBenContainer(pStream); + std::unique_ptr pContainer(new LtcBenContainer(pStream)); if (pContainer->Open() != BenErr_OK) // delete two inputs { - delete pContainer; return BenErr_InvalidTOC; } - *ppContainer = pContainer; + *ppContainer = std::move(pContainer); return BenErr_OK; } diff --git a/lotuswordpro/source/filter/bento.hxx b/lotuswordpro/source/filter/bento.hxx index 4b294183a8eb..f437ce9bdbec 100644 --- a/lotuswordpro/source/filter/bento.hxx +++ b/lotuswordpro/source/filter/bento.hxx @@ -59,6 +59,7 @@ #include #include +#include #include #include #include @@ -136,7 +137,7 @@ typedef sal_uInt32 BenContainerPos; typedef sal_uInt32 BenObjectID; typedef sal_uInt32 BenGeneration; -sal_uLong BenOpenContainer(LwpSvStream * pStream, LtcBenContainer ** ppContainer); +sal_uLong BenOpenContainer(LwpSvStream * pStream, std::unique_ptr* ppContainer); class CBenIDListElmt : public CUtListElmt { diff --git a/lotuswordpro/source/filter/lwpfilter.cxx b/lotuswordpro/source/filter/lwpfilter.cxx index 5dbaf0f29c03..4e743eb4da0f 100644 --- a/lotuswordpro/source/filter/lwpfilter.cxx +++ b/lotuswordpro/source/filter/lwpfilter.cxx @@ -109,9 +109,7 @@ static bool Decompress(SvStream *pCompressed, SvStream * & pOutDecompressed) std::unique_ptr aLwpStream(new LwpSvStream(pCompressed)); std::unique_ptr pBentoContainer; { - OpenStormBento::LtcBenContainer* pTmp(nullptr); - sal_uLong ulRet = BenOpenContainer(aLwpStream.get(), &pTmp); - pBentoContainer.reset(pTmp); + sal_uLong ulRet = BenOpenContainer(aLwpStream.get(), &pBentoContainer); if (ulRet != BenErr_OK) return false; } diff --git a/lotuswordpro/source/filter/lwpgrfobj.cxx b/lotuswordpro/source/filter/lwpgrfobj.cxx index 6e0069bf98a8..1d21c9a3d4c8 100644 --- a/lotuswordpro/source/filter/lwpgrfobj.cxx +++ b/lotuswordpro/source/filter/lwpgrfobj.cxx @@ -286,7 +286,7 @@ void LwpGraphicObject::CreateDrawObjects() // if small file, use the compressed stream for BENTO LwpSvStream* pStream = m_pStrm->GetCompressedStream() ? m_pStrm->GetCompressedStream(): m_pStrm; - OpenStormBento::LtcBenContainer* pBentoContainer; + std::unique_ptr pBentoContainer; sal_uLong ulRet = OpenStormBento::BenOpenContainer(pStream, &pBentoContainer); if (ulRet != OpenStormBento::BenErr_OK) return; @@ -334,9 +334,7 @@ std::vector LwpGraphicObject::GetRawGrafData() std::unique_ptr pBentoContainer; { - OpenStormBento::LtcBenContainer* pTmp(nullptr); - sal_uLong ulRet = OpenStormBento::BenOpenContainer(pStream, &pTmp); - pBentoContainer.reset(pTmp); + sal_uLong ulRet = OpenStormBento::BenOpenContainer(pStream, &pBentoContainer); if (ulRet != OpenStormBento::BenErr_OK) return aGrafData; } @@ -361,7 +359,7 @@ sal_uInt32 LwpGraphicObject::GetGrafData(std::unique_ptr& pGrafData // if small file, use the compressed stream for BENTO LwpSvStream* pStream = m_pStrm->GetCompressedStream() ? m_pStrm->GetCompressedStream(): m_pStrm; - OpenStormBento::LtcBenContainer* pBentoContainer; + std::unique_ptr pBentoContainer; sal_uLong ulRet = OpenStormBento::BenOpenContainer(pStream, &pBentoContainer); if (ulRet != OpenStormBento::BenErr_OK) return 0; @@ -379,7 +377,7 @@ sal_uInt32 LwpGraphicObject::GetGrafData(std::unique_ptr& pGrafData // get bento stream by the name pGrafStream = pBentoContainer->FindValueStreamWithPropertyName(sDName); - SvMemoryStream* pMemGrafStream = static_cast(pGrafStream); + std::unique_ptr pMemGrafStream(static_cast(pGrafStream)); if (pMemGrafStream) { @@ -389,9 +387,6 @@ sal_uInt32 LwpGraphicObject::GetGrafData(std::unique_ptr& pGrafData pGrafData.reset(new sal_uInt8 [nDataLen]); pMemGrafStream->ReadBytes(pGrafData.get(), nDataLen); - delete pMemGrafStream; - pMemGrafStream = nullptr; - return nDataLen; } -- cgit