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); |