From fe91c6c8211cec39f871d9202556e1957bf81983 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 16 May 2017 15:33:20 -0700 Subject: Be skeptical of bare |new|s. In particular, prefer an explicit .release() call when handing ownership of an object to a caller across a C-API. Change-Id: Ic3784e9d0b2d378a08d388989eaea7c9166bacd1 Reviewed-on: https://pdfium-review.googlesource.com/5470 Commit-Queue: Tom Sepez Reviewed-by: Lei Zhang --- fpdfsdk/fpdf_transformpage.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'fpdfsdk/fpdf_transformpage.cpp') diff --git a/fpdfsdk/fpdf_transformpage.cpp b/fpdfsdk/fpdf_transformpage.cpp index 32ba3a7525..cc5239b802 100644 --- a/fpdfsdk/fpdf_transformpage.cpp +++ b/fpdfsdk/fpdf_transformpage.cpp @@ -6,6 +6,7 @@ #include "public/fpdf_transformpage.h" +#include #include #include "core/fpdfapi/page/cpdf_clippath.h" @@ -222,13 +223,14 @@ DLLEXPORT FPDF_CLIPPATH STDCALL FPDF_CreateClipPath(float left, CPDF_Path Path; Path.AppendRect(left, bottom, right, top); - CPDF_ClipPath* pNewClipPath = new CPDF_ClipPath(); + auto pNewClipPath = pdfium::MakeUnique(); pNewClipPath->AppendPath(Path, FXFILL_ALTERNATE, false); - return pNewClipPath; + return pNewClipPath.release(); // Caller takes ownership. } DLLEXPORT void STDCALL FPDF_DestroyClipPath(FPDF_CLIPPATH clipPath) { - delete (CPDF_ClipPath*)clipPath; + // Take ownership back from caller and destroy. + std::unique_ptr(static_cast(clipPath)); } void OutputPath(CFX_ByteTextBuf& buf, CPDF_Path path) { -- cgit v1.2.3