Kaydet (Commit) da2d11d2 authored tarafından Noel Grandin's avatar Noel Grandin

use unique_ptr in BenOpenContainer

Change-Id: Idc9d728e711f70cc11974020aa507552f31d4c9c
Reviewed-on: https://gerrit.libreoffice.org/65919
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 6256797d
......@@ -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<LtcBenContainer>* 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<LtcBenContainer> 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;
}
......
......@@ -59,6 +59,7 @@
#include <sal/config.h>
#include <cstring>
#include <memory>
#include <string>
#include <vector>
#include <lwpsvstream.hxx>
......@@ -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<LtcBenContainer>* ppContainer);
class CBenIDListElmt : public CUtListElmt
{
......
......@@ -109,9 +109,7 @@ static bool Decompress(SvStream *pCompressed, SvStream * & pOutDecompressed)
std::unique_ptr<LwpSvStream> aLwpStream(new LwpSvStream(pCompressed));
std::unique_ptr<OpenStormBento::LtcBenContainer> 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;
}
......
......@@ -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<OpenStormBento::LtcBenContainer> pBentoContainer;
sal_uLong ulRet = OpenStormBento::BenOpenContainer(pStream, &pBentoContainer);
if (ulRet != OpenStormBento::BenErr_OK)
return;
......@@ -334,9 +334,7 @@ std::vector<sal_uInt8> LwpGraphicObject::GetRawGrafData()
std::unique_ptr<OpenStormBento::LtcBenContainer> 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<sal_uInt8[]>& 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<OpenStormBento::LtcBenContainer> 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<sal_uInt8[]>& pGrafData
// get bento stream by the name
pGrafStream = pBentoContainer->FindValueStreamWithPropertyName(sDName);
SvMemoryStream* pMemGrafStream = static_cast<SvMemoryStream*>(pGrafStream);
std::unique_ptr<SvMemoryStream> pMemGrafStream(static_cast<SvMemoryStream*>(pGrafStream));
if (pMemGrafStream)
{
......@@ -389,9 +387,6 @@ sal_uInt32 LwpGraphicObject::GetGrafData(std::unique_ptr<sal_uInt8[]>& pGrafData
pGrafData.reset(new sal_uInt8 [nDataLen]);
pMemGrafStream->ReadBytes(pGrafData.get(), nDataLen);
delete pMemGrafStream;
pMemGrafStream = nullptr;
return nDataLen;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment