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

Unified Diff: core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp

Issue 1653023004: Merge to XFA: Remove the m_ObjVersion member variable from CPDF_Parser. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 4 years, 11 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
« no previous file with comments | « core/include/fpdfapi/fpdf_parser.h ('k') | core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
index 5cc117798cb177b5915a483a677bfcbdead9b0bb..3696bb13dbdcca595b6f5cd5d38fd298df1af95a 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
@@ -131,7 +131,9 @@ uint8_t CPDF_Parser::GetObjectType(FX_DWORD objnum) const {
}
uint16_t CPDF_Parser::GetObjectGenNum(FX_DWORD objnum) const {
- return m_ObjVersion[objnum];
+ ASSERT(IsValidObjectNumber(objnum));
+ auto it = m_ObjectInfo.find(objnum);
+ return it != m_ObjectInfo.end() ? it->second.gennum : 0;
}
bool CPDF_Parser::IsObjectFreeOrNull(FX_DWORD objnum) const {
@@ -179,7 +181,6 @@ void CPDF_Parser::CloseParser() {
m_SortedOffset.RemoveAll();
m_ObjectInfo.clear();
- m_ObjVersion.RemoveAll();
int32_t iLen = m_Trailers.GetSize();
for (int32_t i = 0; i < iLen; ++i) {
if (CPDF_Dictionary* trailer = m_Trailers.GetAt(i))
@@ -486,7 +487,7 @@ FX_BOOL CPDF_Parser::LoadLinearizedCrossRefV4(FX_FILESIZE pos,
if (version >= 1) {
m_bVersionUpdated = TRUE;
}
- m_ObjVersion.SetAtGrow(objnum, version);
+ m_ObjectInfo[objnum].gennum = version;
if (m_ObjectInfo[objnum].pos < m_Syntax.m_FileLen) {
void* pResult = FXSYS_bsearch(
&m_ObjectInfo[objnum].pos, m_SortedOffset.GetData(),
@@ -568,7 +569,7 @@ bool CPDF_Parser::LoadCrossRefV4(FX_FILESIZE pos,
if (version >= 1) {
m_bVersionUpdated = TRUE;
}
- m_ObjVersion.SetAtGrow(objnum, version);
+ m_ObjectInfo[objnum].gennum = version;
if (m_ObjectInfo[objnum].pos < m_Syntax.m_FileLen &&
!FindPosInOffsets(m_ObjectInfo[objnum].pos)) {
m_SortedOffset.Add(m_ObjectInfo[objnum].pos);
@@ -606,7 +607,6 @@ FX_BOOL CPDF_Parser::LoadAllCrossRefV5(FX_FILESIZE xrefpos) {
FX_BOOL CPDF_Parser::RebuildCrossRef() {
m_ObjectInfo.clear();
m_SortedOffset.RemoveAll();
- m_ObjVersion.RemoveAll();
if (m_pTrailer) {
m_pTrailer->Release();
m_pTrailer = NULL;
@@ -811,9 +811,9 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() {
if (!m_ObjectInfo.empty() && IsValidObjectNumber(objnum) &&
m_ObjectInfo[objnum].pos) {
if (pObject) {
- FX_DWORD oldgen = m_ObjVersion.GetAt(objnum);
+ FX_DWORD oldgen = GetObjectGenNum(objnum);
m_ObjectInfo[objnum].pos = obj_pos;
- m_ObjVersion.SetAt(objnum, (int16_t)gennum);
+ m_ObjectInfo[objnum].gennum = gennum;
if (oldgen != gennum) {
m_bVersionUpdated = TRUE;
}
@@ -821,7 +821,7 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() {
} else {
m_ObjectInfo[objnum].pos = obj_pos;
m_ObjectInfo[objnum].type = 1;
- m_ObjVersion.SetAtGrow(objnum, (int16_t)gennum);
+ m_ObjectInfo[objnum].gennum = gennum;
}
if (pObject) {
pObject->Release();
« no previous file with comments | « core/include/fpdfapi/fpdf_parser.h ('k') | core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698