From 13fe8c9d74607610b3a535c7edf911eaa8711318 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Tue, 22 Sep 2015 21:53:22 -0700 Subject: Merge to XFA: Change nonstd::unique_ptr to take a custom deleter. Code is mostly stolen from Chromium's scoped_ptr. - Add unit tests. - Use this to fix a leak. BUG=chromium:531408 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1351383004 . (cherry picked from commit cef2a9c51bee4b987fc813013d45dad6535a9a46) Review URL: https://codereview.chromium.org/1358163003 . --- core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'core/src/fpdfapi/fpdf_parser') diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp index 4c2bb346a1..5909d0f758 100644 --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp @@ -2385,8 +2385,9 @@ CPDF_Object* CPDF_SyntaxParser::GetObjectByStrict( continue; } key = PDF_NameDecode(key); - CPDF_Object* pObj = GetObject(pObjList, objnum, gennum); - if (pObj == NULL) { + nonstd::unique_ptr> obj( + GetObject(pObjList, objnum, gennum)); + if (!obj) { if (pDict) { pDict->Release(); } @@ -2403,7 +2404,7 @@ CPDF_Object* CPDF_SyntaxParser::GetObjectByStrict( } if (key.GetLength() > 1) { pDict->AddValue(CFX_ByteStringC(key.c_str() + 1, key.GetLength() - 1), - pObj); + obj.release()); } } if (pContext) { -- cgit v1.2.3