Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(757)

Unified Diff: core/fpdfapi/fpdf_parser/cpdf_parser.cpp

Issue 2384883003: Remove CPDF_Object::Release() in favor of direct delete (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 fed8400c13a7ed173554dbaea23efaf497a1e9ef..92597a2c46e61371ec9589ac6085f6515038177a 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)
- 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;
}
}
}
@@ -1417,7 +1405,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;
@@ -1469,7 +1457,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;
}
@@ -1485,7 +1473,7 @@ FX_BOOL CPDF_Parser::IsLinearizedFile(IFX_FileRead* pFileAccess,
return TRUE;
}
- m_pLinearized->Release();
+ delete m_pLinearized;
m_pLinearized = nullptr;
return FALSE;
}
@@ -1593,12 +1581,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);

Powered by Google App Engine
This is Rietveld 408576698