coverity#1356337 Resource leak

Change-Id: Id00ee8abd5f22bf0594ad41e3922222872d6c5ca
This commit is contained in:
Caolán McNamara
2016-03-16 09:19:39 +00:00
parent 95548f1615
commit 5873b3643d
3 changed files with 10 additions and 10 deletions

View File

@@ -259,7 +259,7 @@ public:
SdDrawDocument* pSourceDoc, bool bMaster, bool bCheckMasters);
SdDrawDocument* OpenBookmarkDoc(const OUString& rBookmarkFile);
SAL_DLLPRIVATE SdDrawDocument* OpenBookmarkDoc(SfxMedium& rMedium);
SAL_DLLPRIVATE SdDrawDocument* OpenBookmarkDoc(SfxMedium* pMedium);
SAL_DLLPRIVATE void InsertBookmark(const std::vector<OUString> &rBookmarkList,
std::vector<OUString> &rExchangeList, bool bLink,

View File

@@ -197,16 +197,16 @@ static void lcl_IterateBookmarkPages( SdDrawDocument &rDoc, SdDrawDocument* pBoo
}
// Opens a bookmark document
SdDrawDocument* SdDrawDocument::OpenBookmarkDoc(SfxMedium& rMedium)
SdDrawDocument* SdDrawDocument::OpenBookmarkDoc(SfxMedium* pMedium)
{
bool bOK = true;
SdDrawDocument* pBookmarkDoc = nullptr;
OUString aBookmarkName = rMedium.GetName();
std::shared_ptr<const SfxFilter> pFilter = rMedium.GetFilter();
OUString aBookmarkName = pMedium->GetName();
std::shared_ptr<const SfxFilter> pFilter = pMedium->GetFilter();
if ( !pFilter )
{
rMedium.UseInteractionHandler( true );
SfxGetpApp()->GetFilterMatcher().GuessFilter( rMedium, pFilter );
pMedium->UseInteractionHandler( true );
SfxGetpApp()->GetFilterMatcher().GuessFilter(*pMedium, pFilter);
}
if ( !pFilter )
@@ -231,7 +231,7 @@ SdDrawDocument* SdDrawDocument::OpenBookmarkDoc(SfxMedium& rMedium)
// Impress
mxBookmarkDocShRef = new ::sd::DrawDocShell(SfxObjectCreateMode::STANDARD, true);
bOK = mxBookmarkDocShRef->DoLoad(&rMedium);
bOK = mxBookmarkDocShRef->DoLoad(pMedium);
if( bOK )
{
maBookmarkFile = aBookmarkName;
@@ -265,8 +265,8 @@ SdDrawDocument* SdDrawDocument::OpenBookmarkDoc(const OUString& rBookmarkFile)
if (!rBookmarkFile.isEmpty() && maBookmarkFile != rBookmarkFile)
{
SfxMedium* pMedium = new SfxMedium( rBookmarkFile, StreamMode::READ );
pBookmarkDoc = OpenBookmarkDoc(*pMedium);
std::unique_ptr<SfxMedium> xMedium(new SfxMedium(rBookmarkFile, StreamMode::READ));
pBookmarkDoc = OpenBookmarkDoc(xMedium.release());
}
else if (mxBookmarkDocShRef.Is())
{

View File

@@ -1008,7 +1008,7 @@ SdDrawDocument* SdPageObjsTLB::GetBookmarkDoc(SfxMedium* pMed)
// in this mode the document is owned and controlled by the SdDrawDocument
// it can be released by calling the corresponding CloseBookmarkDoc method
// successful creation of a document makes this the owner of the medium
mpBookmarkDoc = const_cast<SdDrawDocument*>(mpDoc)->OpenBookmarkDoc(*mpMedium);
mpBookmarkDoc = const_cast<SdDrawDocument*>(mpDoc)->OpenBookmarkDoc(mpMedium);
if ( !mpBookmarkDoc )
{