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

Unified Diff: core/fpdfapi/fpdf_edit/fpdf_edit_create.cpp

Issue 2253723002: Move parser pointer to CPDF_Document (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Review feedback Created 4 years, 4 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_edit/fpdf_edit_create.cpp
diff --git a/core/fpdfapi/fpdf_edit/fpdf_edit_create.cpp b/core/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
index c20a483764ae1651242186f00e012e6e52e2e886..2d700ca132dcf764df426e9d303cdab7f27a6768 100644
--- a/core/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
+++ b/core/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
@@ -1233,13 +1233,12 @@ int32_t CPDF_Creator::WriteOldIndirectObject(uint32_t objnum) {
return 0;
m_ObjectOffset[objnum] = m_Offset;
- FX_BOOL bExistInMap =
- pdfium::ContainsKey(m_pDocument->m_IndirectObjs, objnum);
+ FX_BOOL bExistInMap = m_pDocument->GetIndirectObject(objnum) != nullptr;
Tom Sepez 2016/08/17 16:46:44 nit: the cool kids would write bool bExistInMap
dsinclair 2016/08/17 16:59:25 I was cool once, but then people stopped wearing o
const uint8_t object_type = m_pParser->GetObjectType(objnum);
bool bObjStm = (object_type == 2) && m_pEncryptDict && !m_pXRefStream;
if (m_pParser->IsVersionUpdated() || m_bSecurityChanged || bExistInMap ||
bObjStm) {
- CPDF_Object* pObj = m_pDocument->GetIndirectObject(objnum);
+ CPDF_Object* pObj = m_pDocument->GetIndirectObjectIfValid(objnum);
Tom Sepez 2016/08/17 16:46:44 Does this introduce a validity check that we previ
dsinclair 2016/08/17 16:59:25 No, because I renamed the method from GetIndirectO
if (!pObj) {
m_ObjectOffset[objnum] = 0;
return 0;
@@ -1320,13 +1319,13 @@ int32_t CPDF_Creator::WriteNewObjs(FX_BOOL bIncremental, IFX_Pause* pPause) {
int32_t index = (int32_t)(uintptr_t)m_Pos;
while (index < iCount) {
uint32_t objnum = m_NewObjNumArray.ElementAt(index);
- auto it = m_pDocument->m_IndirectObjs.find(objnum);
- if (it == m_pDocument->m_IndirectObjs.end()) {
+ CPDF_Object* pObj = m_pDocument->GetIndirectObject(objnum);
+ if (!pObj) {
++index;
continue;
}
m_ObjectOffset[objnum] = m_Offset;
- if (WriteIndirectObj(it->second)) {
+ if (WriteIndirectObj(pObj)) {
return -1;
}
index++;
@@ -1363,9 +1362,9 @@ void CPDF_Creator::InitOldObjNumOffsets() {
void CPDF_Creator::InitNewObjNumOffsets() {
FX_BOOL bIncremental = (m_dwFlags & FPDFCREATE_INCREMENTAL) != 0;
FX_BOOL bNoOriginal = (m_dwFlags & FPDFCREATE_NO_ORIGINAL) != 0;
- for (const auto& pair : m_pDocument->m_IndirectObjs) {
- const uint32_t objnum = pair.first;
- const CPDF_Object* pObj = pair.second;
+ for (auto it = m_pDocument->begin(); it != m_pDocument->end(); it++) {
+ const uint32_t objnum = it->first;
+ const CPDF_Object* pObj = it->second;
if (bIncremental || pObj->GetObjNum() == CPDF_Object::kInvalidObjNum)
continue;
if (m_pParser && m_pParser->IsValidObjectNumber(objnum) &&
@@ -1703,7 +1702,7 @@ int32_t CPDF_Creator::WriteDoc_Stage4(IFX_Pause* pPause) {
return -1;
}
} else {
- if (m_File.AppendDWord(m_pDocument->m_LastObjNum + 1) < 0) {
+ if (m_File.AppendDWord(m_pDocument->GetLastObjNum() + 1) < 0) {
return -1;
}
if (m_File.AppendString(" 0 obj <<") < 0) {
« no previous file with comments | « no previous file | core/fpdfapi/fpdf_parser/cfdf_document.cpp » ('j') | core/fpdfapi/fpdf_parser/cfdf_document.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698