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 658b9782e5d945318c1d14425a97451d2c8acbb5..994c1c8a5a38fde1e4c95f3c9ac40b40576d3085 100644 |
--- a/core/fpdfapi/fpdf_edit/fpdf_edit_create.cpp |
+++ b/core/fpdfapi/fpdf_edit/fpdf_edit_create.cpp |
@@ -1353,28 +1353,26 @@ void CPDF_Creator::InitOldObjNumOffsets() { |
dwStart = j; |
} |
} |
+ |
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; |
- if (pObj->GetObjNum() == CPDF_Object::kInvalidObjNum) |
+ if (bIncremental || pObj->GetObjNum() == CPDF_Object::kInvalidObjNum) |
continue; |
- if (bIncremental) { |
- if (!pObj->IsModified()) |
- continue; |
- } else if (m_pParser && m_pParser->IsValidObjectNumber(objnum) && |
- m_pParser->GetObjectType(objnum)) { |
+ if (m_pParser && m_pParser->IsValidObjectNumber(objnum) && |
+ m_pParser->GetObjectType(objnum)) { |
continue; |
} |
AppendNewObjNum(objnum); |
} |
int32_t iCount = m_NewObjNumArray.GetSize(); |
- if (iCount == 0) { |
+ if (iCount == 0) |
return; |
- } |
+ |
int32_t i = 0; |
uint32_t dwStartObjNum = 0; |
FX_BOOL bCrossRefValid = m_pParser && m_pParser->GetLastXRefOffset() > 0; |
@@ -1386,12 +1384,12 @@ void CPDF_Creator::InitNewObjNumOffsets() { |
} |
i++; |
} |
- if (i >= iCount) { |
+ if (i >= iCount) |
return; |
- } |
+ |
uint32_t dwLastObjNum = dwStartObjNum; |
i++; |
- FX_BOOL bNewStart = FALSE; |
+ bool bNewStart = false; |
for (; i < iCount; i++) { |
uint32_t dwCurObjNum = m_NewObjNumArray.ElementAt(i); |
bool bExist = m_pParser && m_pParser->IsValidObjectNumber(dwCurObjNum) && |
@@ -1401,14 +1399,15 @@ void CPDF_Creator::InitNewObjNumOffsets() { |
m_ObjectOffset.Add(dwStartObjNum, dwLastObjNum - dwStartObjNum + 1); |
dwStartObjNum = dwCurObjNum; |
} |
- if (bNewStart) { |
+ if (bNewStart) |
dwStartObjNum = dwCurObjNum; |
- } |
+ |
bNewStart = bExist; |
dwLastObjNum = dwCurObjNum; |
} |
m_ObjectOffset.Add(dwStartObjNum, dwLastObjNum - dwStartObjNum + 1); |
} |
+ |
void CPDF_Creator::AppendNewObjNum(uint32_t objbum) { |
int32_t iStart = 0, iFind = 0; |
int32_t iEnd = m_NewObjNumArray.GetUpperBound(); |