| Index: core/fpdfapi/parser/cpdf_syntax_parser.cpp
|
| diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.cpp b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
|
| index 45d97be771f8c27d54f33088019268d1f93e4b1e..c1ab1cf7682b959b0ce729aae95c1d7da627347f 100644
|
| --- a/core/fpdfapi/parser/cpdf_syntax_parser.cpp
|
| +++ b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
|
| @@ -441,7 +441,8 @@
|
| int32_t nKeys = 0;
|
| FX_FILESIZE dwSignValuePos = 0;
|
|
|
| - std::unique_ptr<CPDF_Dictionary> pDict(new CPDF_Dictionary(m_pPool));
|
| + std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Dictionary>> pDict(
|
| + new CPDF_Dictionary(m_pPool));
|
| while (1) {
|
| CFX_ByteString key = GetNextWord(nullptr);
|
| if (key.IsEmpty())
|
| @@ -545,7 +546,8 @@
|
| }
|
|
|
| if (word == "[") {
|
| - std::unique_ptr<CPDF_Array> pArray(new CPDF_Array);
|
| + std::unique_ptr<CPDF_Array, ReleaseDeleter<CPDF_Array>> pArray(
|
| + new CPDF_Array);
|
| while (CPDF_Object* pObj = GetObject(pObjList, objnum, gennum, true))
|
| pArray->Add(pObj);
|
|
|
| @@ -558,7 +560,8 @@
|
| }
|
|
|
| if (word == "<<") {
|
| - std::unique_ptr<CPDF_Dictionary> pDict(new CPDF_Dictionary(m_pPool));
|
| + std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Dictionary>> pDict(
|
| + new CPDF_Dictionary(m_pPool));
|
| while (1) {
|
| FX_FILESIZE SavedPos = m_Pos;
|
| CFX_ByteString key = GetNextWord(nullptr);
|
| @@ -577,7 +580,7 @@
|
| continue;
|
|
|
| key = PDF_NameDecode(key);
|
| - std::unique_ptr<CPDF_Object> obj(
|
| + std::unique_ptr<CPDF_Object, ReleaseDeleter<CPDF_Object>> obj(
|
| GetObject(pObjList, objnum, gennum, true));
|
| if (!obj) {
|
| uint8_t ch;
|
| @@ -705,7 +708,7 @@
|
|
|
| // Can't find "endstream" or "endobj".
|
| if (endStreamOffset < 0 && endObjOffset < 0) {
|
| - delete pDict;
|
| + pDict->Release();
|
| return nullptr;
|
| }
|
|
|
| @@ -731,7 +734,7 @@
|
| }
|
|
|
| if (len < 0) {
|
| - delete pDict;
|
| + pDict->Release();
|
| return nullptr;
|
| }
|
| pDict->SetIntegerFor("Length", len);
|
| @@ -740,7 +743,7 @@
|
| }
|
|
|
| if (len < 0) {
|
| - delete pDict;
|
| + pDict->Release();
|
| return nullptr;
|
| }
|
|
|
|
|