diff options
Diffstat (limited to 'fpdfsdk/fpdf_dataavail.cpp')
-rw-r--r-- | fpdfsdk/fpdf_dataavail.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fpdfsdk/fpdf_dataavail.cpp b/fpdfsdk/fpdf_dataavail.cpp index f2358d2e5c..2511441af5 100644 --- a/fpdfsdk/fpdf_dataavail.cpp +++ b/fpdfsdk/fpdf_dataavail.cpp @@ -118,16 +118,17 @@ CFPDF_DataAvail* CFPDFDataAvailFromFPDFAvail(FPDF_AVAIL avail) { DLLEXPORT FPDF_AVAIL STDCALL FPDFAvail_Create(FX_FILEAVAIL* file_avail, FPDF_FILEACCESS* file) { - CFPDF_DataAvail* pAvail = new CFPDF_DataAvail; + auto pAvail = pdfium::MakeUnique<CFPDF_DataAvail>(); pAvail->m_FileAvail->Set(file_avail); pAvail->m_FileRead->Set(file); pAvail->m_pDataAvail = pdfium::MakeUnique<CPDF_DataAvail>( pAvail->m_FileAvail.get(), pAvail->m_FileRead, true); - return pAvail; + return pAvail.release(); // Caller takes ownership. } DLLEXPORT void STDCALL FPDFAvail_Destroy(FPDF_AVAIL avail) { - delete (CFPDF_DataAvail*)avail; + // Take ownership back from caller and destroy. + std::unique_ptr<CFPDF_DataAvail>(static_cast<CFPDF_DataAvail*>(avail)); } DLLEXPORT int STDCALL FPDFAvail_IsDocAvail(FPDF_AVAIL avail, |