Index: core/src/fpdfdoc/doc_annot.cpp |
diff --git a/core/src/fpdfdoc/doc_annot.cpp b/core/src/fpdfdoc/doc_annot.cpp |
index 89528455701f41f510b95c180ed4aaaffa5a364a..3285487ca0bf771c1d1162648463ad9a39a010cf 100644 |
--- a/core/src/fpdfdoc/doc_annot.cpp |
+++ b/core/src/fpdfdoc/doc_annot.cpp |
@@ -4,8 +4,10 @@ |
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
+#include "../../../third_party/base/nonstd_unique_ptr.h" |
#include "../../include/fpdfdoc/fpdf_doc.h" |
#include "../../include/fpdfapi/fpdf_pageobj.h" |
+ |
CPDF_AnnotList::CPDF_AnnotList(CPDF_Page* pPage) |
{ |
ASSERT(pPage != NULL); |
@@ -323,19 +325,14 @@ CPDF_PageObject* CPDF_Annot::GetBorder(FX_BOOL bPrint, const CPDF_RenderOptions* |
int B = (FX_INT32)(pColor->GetNumber(2) * 255); |
argb = ArgbEncode(0xff, R, G, B); |
} |
- CPDF_PathObject *pPathObject = FX_NEW CPDF_PathObject(); |
- if (!pPathObject) { |
- return NULL; |
- } |
+ nonstd::unique_ptr<CPDF_PathObject> pPathObject(new CPDF_PathObject()); |
CPDF_GraphStateData *pGraphState = pPathObject->m_GraphState.GetModify(); |
if (!pGraphState) { |
- pPathObject->Release(); |
return NULL; |
} |
pGraphState->m_LineWidth = width; |
CPDF_ColorStateData *pColorData = pPathObject->m_ColorState.GetModify(); |
if (!pColorData) { |
- pPathObject->Release(); |
return NULL; |
} |
pColorData->m_StrokeRGB = argb; |
@@ -349,7 +346,6 @@ CPDF_PageObject* CPDF_Annot::GetBorder(FX_BOOL bPrint, const CPDF_RenderOptions* |
} |
pGraphState->m_DashArray = FX_Alloc(FX_FLOAT, dash_count); |
if (pGraphState->m_DashArray == NULL) { |
- pPathObject->Release(); |
return NULL; |
} |
pGraphState->m_DashCount = dash_count; |
@@ -363,7 +359,6 @@ CPDF_PageObject* CPDF_Annot::GetBorder(FX_BOOL bPrint, const CPDF_RenderOptions* |
} else { |
pGraphState->m_DashArray = FX_Alloc(FX_FLOAT, 2); |
if (pGraphState->m_DashArray == NULL) { |
- pPathObject->Release(); |
return NULL; |
} |
pGraphState->m_DashCount = 2; |
@@ -378,7 +373,7 @@ CPDF_PageObject* CPDF_Annot::GetBorder(FX_BOOL bPrint, const CPDF_RenderOptions* |
pPathData->AppendRect(rect.left + width, rect.bottom + width, rect.right - width, rect.top - width); |
} |
pPathObject->CalcBoundingBox(); |
- return pPathObject; |
+ return pPathObject.release(); |
} |
void CPDF_Annot::DrawBorder(CFX_RenderDevice* pDevice, const CFX_AffineMatrix* pUser2Device, const CPDF_RenderOptions* pOptions) |
{ |