Chromium Code Reviews| Index: core/fpdfapi/fpdf_parser/cpdf_parser.cpp |
| diff --git a/core/fpdfapi/fpdf_parser/cpdf_parser.cpp b/core/fpdfapi/fpdf_parser/cpdf_parser.cpp |
| index bc3dfe602133e9d42935bce7b1d4847b183dedfd..be7173239e51428b324a2a3b05ca889e21c379a4 100644 |
| --- a/core/fpdfapi/fpdf_parser/cpdf_parser.cpp |
| +++ b/core/fpdfapi/fpdf_parser/cpdf_parser.cpp |
| @@ -61,9 +61,7 @@ CPDF_Parser::CPDF_Parser() |
| } |
| CPDF_Parser::~CPDF_Parser() { |
| - if (m_pTrailer) |
| - m_pTrailer->Release(); |
| - |
| + delete m_pTrailer; |
| ReleaseEncryptHandler(); |
| SetEncryptDictionary(nullptr); |
| @@ -73,13 +71,10 @@ CPDF_Parser::~CPDF_Parser() { |
| } |
| int32_t iLen = m_Trailers.GetSize(); |
| - for (int32_t i = 0; i < iLen; ++i) { |
| - if (CPDF_Dictionary* trailer = m_Trailers.GetAt(i)) |
| - trailer->Release(); |
| - } |
| + for (int32_t i = 0; i < iLen; ++i) |
| + delete m_Trailers.GetAt(i); |
| - if (m_pLinearized) |
| - m_pLinearized->Release(); |
| + delete m_pLinearized; |
| } |
| uint32_t CPDF_Parser::GetLastObjNum() const { |
| @@ -358,8 +353,7 @@ FX_BOOL CPDF_Parser::LoadAllCrossRefV4(FX_FILESIZE xrefpos) { |
| CrossRefList.insert(CrossRefList.begin(), xrefpos); |
| LoadCrossRefV4(xrefpos, 0, TRUE); |
| - std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Dictionary>> pDict( |
| - LoadTrailerV4()); |
| + std::unique_ptr<CPDF_Dictionary> pDict(LoadTrailerV4()); |
| if (!pDict) |
| return FALSE; |
| @@ -413,8 +407,7 @@ FX_BOOL CPDF_Parser::LoadLinearizedAllCrossRefV4(FX_FILESIZE xrefpos, |
| CrossRefList.insert(CrossRefList.begin(), xrefpos); |
| LoadCrossRefV4(xrefpos, 0, TRUE); |
| - std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Dictionary>> pDict( |
| - LoadTrailerV4()); |
| + std::unique_ptr<CPDF_Dictionary> pDict(LoadTrailerV4()); |
| if (!pDict) |
| return FALSE; |
| @@ -591,18 +584,14 @@ FX_BOOL CPDF_Parser::LoadAllCrossRefV5(FX_FILESIZE xrefpos) { |
| FX_BOOL CPDF_Parser::RebuildCrossRef() { |
| m_ObjectInfo.clear(); |
| m_SortedOffset.clear(); |
| - if (m_pTrailer) { |
| - m_pTrailer->Release(); |
| - m_pTrailer = nullptr; |
| - } |
| + delete m_pTrailer; |
| + m_pTrailer = nullptr; |
| ParserState state = ParserState::kDefault; |
| - |
| int32_t inside_index = 0; |
| uint32_t objnum = 0; |
| uint32_t gennum = 0; |
| int32_t depth = 0; |
| - |
| const uint32_t kBufferSize = 4096; |
| std::vector<uint8_t> buffer(kBufferSize); |
| @@ -757,7 +746,7 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() { |
| if (pRoot && pRoot->GetDict() && |
| pRoot->GetDict()->GetObjectFor("Pages")) { |
| if (m_pTrailer) |
|
Lei Zhang
2016/10/03 21:50:47
no if
Tom Sepez
2016/10/05 21:03:02
Done.
|
| - m_pTrailer->Release(); |
| + delete m_pTrailer; |
| m_pTrailer = ToDictionary(pDict->Clone()); |
| } |
| } |
| @@ -795,8 +784,7 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() { |
| m_ObjectInfo[objnum].gennum = gennum; |
| } |
| - if (pObject) |
| - pObject->Release(); |
| + delete pObject; |
| } |
| --i; |
| state = ParserState::kDefault; |
| @@ -813,7 +801,7 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() { |
| CPDF_Object* pObj = m_pSyntax->GetObject(m_pDocument, 0, 0, true); |
| if (pObj) { |
| if (!pObj->IsDictionary() && !pObj->AsStream()) { |
| - pObj->Release(); |
| + delete pObj; |
| } else { |
| CPDF_Stream* pStream = pObj->AsStream(); |
| if (CPDF_Dictionary* pTrailer = |
| @@ -839,11 +827,11 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() { |
| } |
| } |
| } |
| - pObj->Release(); |
| + delete pObj; |
| } else { |
| if (pObj->IsStream()) { |
| m_pTrailer = ToDictionary(pTrailer->Clone()); |
| - pObj->Release(); |
| + delete pObj; |
| } else { |
| m_pTrailer = pTrailer; |
| } |
| @@ -860,7 +848,7 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() { |
| m_pSyntax->RestorePos(dwSavePos); |
| } |
| } else { |
| - pObj->Release(); |
| + delete pObj; |
| } |
| } |
| } |
| @@ -1419,7 +1407,7 @@ CPDF_Dictionary* CPDF_Parser::LoadTrailerV4() { |
| if (m_pSyntax->GetKeyword() != "trailer") |
| return nullptr; |
| - std::unique_ptr<CPDF_Object, ReleaseDeleter<CPDF_Object>> pObj( |
| + std::unique_ptr<CPDF_Object> pObj( |
| m_pSyntax->GetObject(m_pDocument, 0, 0, true)); |
| if (!ToDictionary(pObj.get())) |
| return nullptr; |
| @@ -1471,7 +1459,7 @@ FX_BOOL CPDF_Parser::IsLinearizedFile(IFX_FileRead* pFileAccess, |
| CPDF_Object* pLen = pDict->GetObjectFor("L"); |
| if (!pLen) { |
| - m_pLinearized->Release(); |
| + delete m_pLinearized; |
| m_pLinearized = nullptr; |
| return FALSE; |
| } |
| @@ -1487,7 +1475,7 @@ FX_BOOL CPDF_Parser::IsLinearizedFile(IFX_FileRead* pFileAccess, |
| return TRUE; |
| } |
| - m_pLinearized->Release(); |
| + delete m_pLinearized; |
| m_pLinearized = nullptr; |
| return FALSE; |
| } |
| @@ -1595,12 +1583,11 @@ FX_BOOL CPDF_Parser::LoadLinearizedAllCrossRefV5(FX_FILESIZE xrefpos) { |
| CPDF_Parser::Error CPDF_Parser::LoadLinearizedMainXRefTable() { |
| uint32_t dwSaveMetadataObjnum = m_pSyntax->m_MetadataObjnum; |
| m_pSyntax->m_MetadataObjnum = 0; |
| - if (m_pTrailer) { |
| - m_pTrailer->Release(); |
| - m_pTrailer = nullptr; |
| - } |
| + delete m_pTrailer; |
| + m_pTrailer = nullptr; |
| m_pSyntax->RestorePos(m_LastXRefOffset - m_pSyntax->m_HeaderOffset); |
| + |
| uint8_t ch = 0; |
| uint32_t dwCount = 0; |
| m_pSyntax->GetNextChar(ch); |