summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/parser/cpdf_parser.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_parser.cpp164
1 files changed, 82 insertions, 82 deletions
diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp
index c2748882cf..cff0f77b32 100644
--- a/core/fpdfapi/parser/cpdf_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_parser.cpp
@@ -144,7 +144,7 @@ CPDF_Parser::Error CPDF_Parser::StartParse(IFX_SeekableReadStream* pFileAccess,
ASSERT(!m_bHasParsed);
m_bHasParsed = true;
- m_bXRefStream = FALSE;
+ m_bXRefStream = false;
m_LastXRefOffset = 0;
m_bOwnFileRead = true;
@@ -173,8 +173,8 @@ CPDF_Parser::Error CPDF_Parser::StartParse(IFX_SeekableReadStream* pFileAccess,
m_pSyntax->RestorePos(m_pSyntax->m_FileLen - m_pSyntax->m_HeaderOffset - 9);
m_pDocument = pDocument;
- FX_BOOL bXRefRebuilt = FALSE;
- if (m_pSyntax->SearchWord("startxref", TRUE, FALSE, 4096)) {
+ bool bXRefRebuilt = false;
+ if (m_pSyntax->SearchWord("startxref", true, false, 4096)) {
m_SortedOffset.insert(m_pSyntax->SavePos());
m_pSyntax->GetKeyword();
@@ -189,14 +189,14 @@ CPDF_Parser::Error CPDF_Parser::StartParse(IFX_SeekableReadStream* pFileAccess,
if (!RebuildCrossRef())
return FORMAT_ERROR;
- bXRefRebuilt = TRUE;
+ bXRefRebuilt = true;
m_LastXRefOffset = 0;
}
} else {
if (!RebuildCrossRef())
return FORMAT_ERROR;
- bXRefRebuilt = TRUE;
+ bXRefRebuilt = true;
}
Error eRet = SetEncryptHandler();
if (eRet != SUCCESS)
@@ -323,13 +323,13 @@ bool CPDF_Parser::VerifyCrossRefV4() {
return true;
}
-FX_BOOL CPDF_Parser::LoadAllCrossRefV4(FX_FILESIZE xrefpos) {
- if (!LoadCrossRefV4(xrefpos, 0, TRUE))
- return FALSE;
+bool CPDF_Parser::LoadAllCrossRefV4(FX_FILESIZE xrefpos) {
+ if (!LoadCrossRefV4(xrefpos, 0, true))
+ return false;
m_pTrailer = LoadTrailerV4();
if (!m_pTrailer)
- return FALSE;
+ return false;
int32_t xrefsize = GetDirectInteger(m_pTrailer, "Size");
if (xrefsize > 0 && xrefsize <= kMaxXRefSize)
@@ -349,18 +349,18 @@ FX_BOOL CPDF_Parser::LoadAllCrossRefV4(FX_FILESIZE xrefpos) {
while (xrefpos) {
// Check for circular references.
if (pdfium::ContainsKey(seen_xrefpos, xrefpos))
- return FALSE;
+ return false;
seen_xrefpos.insert(xrefpos);
// SLOW ...
CrossRefList.insert(CrossRefList.begin(), xrefpos);
- LoadCrossRefV4(xrefpos, 0, TRUE);
+ LoadCrossRefV4(xrefpos, 0, true);
std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Dictionary>> pDict(
LoadTrailerV4());
if (!pDict)
- return FALSE;
+ return false;
xrefpos = GetDirectInteger(pDict.get(), "Prev");
@@ -371,26 +371,26 @@ FX_BOOL CPDF_Parser::LoadAllCrossRefV4(FX_FILESIZE xrefpos) {
}
for (size_t i = 0; i < CrossRefList.size(); ++i) {
- if (!LoadCrossRefV4(CrossRefList[i], XRefStreamList[i], FALSE))
- return FALSE;
+ if (!LoadCrossRefV4(CrossRefList[i], XRefStreamList[i], false))
+ return false;
if (i == 0 && !VerifyCrossRefV4())
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
}
-FX_BOOL CPDF_Parser::LoadLinearizedAllCrossRefV4(FX_FILESIZE xrefpos,
- uint32_t dwObjCount) {
+bool CPDF_Parser::LoadLinearizedAllCrossRefV4(FX_FILESIZE xrefpos,
+ uint32_t dwObjCount) {
if (!LoadLinearizedCrossRefV4(xrefpos, dwObjCount))
- return FALSE;
+ return false;
m_pTrailer = LoadTrailerV4();
if (!m_pTrailer)
- return FALSE;
+ return false;
int32_t xrefsize = GetDirectInteger(m_pTrailer, "Size");
if (xrefsize == 0)
- return FALSE;
+ return false;
std::vector<FX_FILESIZE> CrossRefList;
std::vector<FX_FILESIZE> XRefStreamList;
@@ -404,18 +404,18 @@ FX_BOOL CPDF_Parser::LoadLinearizedAllCrossRefV4(FX_FILESIZE xrefpos,
while (xrefpos) {
// Check for circular references.
if (pdfium::ContainsKey(seen_xrefpos, xrefpos))
- return FALSE;
+ return false;
seen_xrefpos.insert(xrefpos);
// SLOW ...
CrossRefList.insert(CrossRefList.begin(), xrefpos);
- LoadCrossRefV4(xrefpos, 0, TRUE);
+ LoadCrossRefV4(xrefpos, 0, true);
std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Dictionary>> pDict(
LoadTrailerV4());
if (!pDict)
- return FALSE;
+ return false;
xrefpos = GetDirectInteger(pDict.get(), "Prev");
@@ -426,14 +426,14 @@ FX_BOOL CPDF_Parser::LoadLinearizedAllCrossRefV4(FX_FILESIZE xrefpos,
}
for (size_t i = 1; i < CrossRefList.size(); ++i) {
- if (!LoadCrossRefV4(CrossRefList[i], XRefStreamList[i], FALSE))
- return FALSE;
+ if (!LoadCrossRefV4(CrossRefList[i], XRefStreamList[i], false))
+ return false;
}
- return TRUE;
+ return true;
}
-FX_BOOL CPDF_Parser::LoadLinearizedCrossRefV4(FX_FILESIZE pos,
- uint32_t dwObjCount) {
+bool CPDF_Parser::LoadLinearizedCrossRefV4(FX_FILESIZE pos,
+ uint32_t dwObjCount) {
FX_FILESIZE dwStartPos = pos - m_pSyntax->m_HeaderOffset;
m_pSyntax->RestorePos(dwStartPos);
@@ -452,11 +452,11 @@ FX_BOOL CPDF_Parser::LoadLinearizedCrossRefV4(FX_FILESIZE pos,
int32_t block_size = block == nBlocks - 1 ? count % 1024 : 1024;
uint32_t dwReadSize = block_size * recordsize;
if ((FX_FILESIZE)(dwStartPos + dwReadSize) > m_pSyntax->m_FileLen)
- return FALSE;
+ return false;
if (!m_pSyntax->ReadBlock(reinterpret_cast<uint8_t*>(buf.data()),
dwReadSize)) {
- return FALSE;
+ return false;
}
for (int32_t i = 0; i < block_size; i++) {
@@ -470,7 +470,7 @@ FX_BOOL CPDF_Parser::LoadLinearizedCrossRefV4(FX_FILESIZE pos,
if (offset == 0) {
for (int32_t c = 0; c < 10; c++) {
if (!std::isdigit(pEntry[c]))
- return FALSE;
+ return false;
}
}
@@ -488,12 +488,12 @@ FX_BOOL CPDF_Parser::LoadLinearizedCrossRefV4(FX_FILESIZE pos,
}
}
m_pSyntax->RestorePos(SavedPos + count * recordsize);
- return TRUE;
+ return true;
}
bool CPDF_Parser::LoadCrossRefV4(FX_FILESIZE pos,
FX_FILESIZE streampos,
- FX_BOOL bSkip) {
+ bool bSkip) {
m_pSyntax->RestorePos(pos);
if (m_pSyntax->GetKeyword() != "xref")
return false;
@@ -565,29 +565,29 @@ bool CPDF_Parser::LoadCrossRefV4(FX_FILESIZE pos,
}
m_pSyntax->RestorePos(SavedPos + count * recordsize);
}
- return !streampos || LoadCrossRefV5(&streampos, FALSE);
+ return !streampos || LoadCrossRefV5(&streampos, false);
}
-FX_BOOL CPDF_Parser::LoadAllCrossRefV5(FX_FILESIZE xrefpos) {
- if (!LoadCrossRefV5(&xrefpos, TRUE))
- return FALSE;
+bool CPDF_Parser::LoadAllCrossRefV5(FX_FILESIZE xrefpos) {
+ if (!LoadCrossRefV5(&xrefpos, true))
+ return false;
std::set<FX_FILESIZE> seen_xrefpos;
while (xrefpos) {
seen_xrefpos.insert(xrefpos);
- if (!LoadCrossRefV5(&xrefpos, FALSE))
- return FALSE;
+ if (!LoadCrossRefV5(&xrefpos, false))
+ return false;
// Check for circular references.
if (pdfium::ContainsKey(seen_xrefpos, xrefpos))
- return FALSE;
+ return false;
}
m_ObjectStreamMap.clear();
- m_bXRefStream = TRUE;
- return TRUE;
+ m_bXRefStream = true;
+ return true;
}
-FX_BOOL CPDF_Parser::RebuildCrossRef() {
+bool CPDF_Parser::RebuildCrossRef() {
m_ObjectInfo.clear();
m_SortedOffset.clear();
if (m_pTrailer) {
@@ -954,35 +954,35 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() {
return m_pTrailer && !m_ObjectInfo.empty();
}
-FX_BOOL CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef) {
+bool CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, bool bMainXRef) {
std::unique_ptr<CPDF_Object> pObject(
ParseIndirectObjectAt(m_pDocument, *pos, 0));
if (!pObject)
- return FALSE;
+ return false;
CPDF_Object* pUnownedObject = pObject.get();
if (m_pDocument) {
CPDF_Dictionary* pRootDict = m_pDocument->GetRoot();
if (pRootDict && pRootDict->GetObjNum() == pObject->m_ObjNum)
- return FALSE;
+ return false;
// Takes ownership of object (std::move someday).
uint32_t objnum = pObject->m_ObjNum;
if (!m_pDocument->ReplaceIndirectObjectIfHigherGeneration(
objnum, pObject.release())) {
- return FALSE;
+ return false;
}
}
CPDF_Stream* pStream = pUnownedObject->AsStream();
if (!pStream)
- return FALSE;
+ return false;
CPDF_Dictionary* pDict = pStream->GetDict();
*pos = pDict->GetIntegerFor("Prev");
int32_t size = pDict->GetIntegerFor("Size");
if (size < 0)
- return FALSE;
+ return false;
CPDF_Dictionary* pNewTrailer = ToDictionary(pDict->Clone());
if (bMainXRef) {
@@ -1015,7 +1015,7 @@ FX_BOOL CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef) {
pArray = pDict->GetArrayFor("W");
if (!pArray)
- return FALSE;
+ return false;
CFX_ArrayTemplate<uint32_t> WidthArray;
FX_SAFE_UINT32 dwAccWidth = 0;
@@ -1025,7 +1025,7 @@ FX_BOOL CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef) {
}
if (!dwAccWidth.IsValid() || WidthArray.GetSize() < 3)
- return FALSE;
+ return false;
uint32_t totalWidth = dwAccWidth.ValueOrDie();
CPDF_StreamAcc acc;
@@ -1086,14 +1086,14 @@ FX_BOOL CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef) {
m_SortedOffset.insert(offset);
} else {
if (offset < 0 || !IsValidObjectNumber(offset))
- return FALSE;
+ return false;
m_ObjectInfo[offset].type = 255;
}
}
}
segindex += count;
}
- return TRUE;
+ return true;
}
CPDF_Array* CPDF_Parser::GetIDArray() {
@@ -1145,7 +1145,7 @@ CPDF_Object* CPDF_Parser::ParseIndirectObject(
return nullptr;
ScopedFileStream file(FX_CreateMemoryStream(
- (uint8_t*)pObjStream->GetData(), (size_t)pObjStream->GetSize(), FALSE));
+ (uint8_t*)pObjStream->GetData(), (size_t)pObjStream->GetSize(), false));
CPDF_SyntaxParser syntax;
syntax.InitParser(file.get(), 0);
const int32_t offset = GetStreamFirst(pObjStream);
@@ -1224,7 +1224,7 @@ void CPDF_Parser::GetIndirectBinary(uint32_t objnum,
const uint8_t* pData = pObjStream->GetData();
uint32_t totalsize = pObjStream->GetSize();
ScopedFileStream file(
- FX_CreateMemoryStream((uint8_t*)pData, (size_t)totalsize, FALSE));
+ FX_CreateMemoryStream((uint8_t*)pData, (size_t)totalsize, false));
CPDF_SyntaxParser syntax;
syntax.InitParser(file.get(), 0);
@@ -1290,16 +1290,16 @@ void CPDF_Parser::GetIndirectBinary(uint32_t objnum,
}
FX_FILESIZE nextoff = *it;
- FX_BOOL bNextOffValid = FALSE;
+ bool bNextOffValid = false;
if (nextoff != pos) {
m_pSyntax->RestorePos(nextoff);
word = m_pSyntax->GetNextWord(&bIsNumber);
if (word == "xref") {
- bNextOffValid = TRUE;
+ bNextOffValid = true;
} else if (bIsNumber) {
word = m_pSyntax->GetNextWord(&bIsNumber);
if (bIsNumber && m_pSyntax->GetKeyword() == "obj") {
- bNextOffValid = TRUE;
+ bNextOffValid = true;
}
}
}
@@ -1438,8 +1438,8 @@ uint32_t CPDF_Parser::GetPermissions() const {
return dwPermission;
}
-FX_BOOL CPDF_Parser::IsLinearizedFile(IFX_SeekableReadStream* pFileAccess,
- uint32_t offset) {
+bool CPDF_Parser::IsLinearizedFile(IFX_SeekableReadStream* pFileAccess,
+ uint32_t offset) {
m_pSyntax->InitParser(pFileAccess, offset);
m_pSyntax->RestorePos(m_pSyntax->m_HeaderOffset + 9);
@@ -1447,22 +1447,22 @@ FX_BOOL CPDF_Parser::IsLinearizedFile(IFX_SeekableReadStream* pFileAccess,
bool bIsNumber;
CFX_ByteString word = m_pSyntax->GetNextWord(&bIsNumber);
if (!bIsNumber)
- return FALSE;
+ return false;
uint32_t objnum = FXSYS_atoui(word.c_str());
word = m_pSyntax->GetNextWord(&bIsNumber);
if (!bIsNumber)
- return FALSE;
+ return false;
uint32_t gennum = FXSYS_atoui(word.c_str());
if (m_pSyntax->GetKeyword() != "obj") {
m_pSyntax->RestorePos(SavedPos);
- return FALSE;
+ return false;
}
m_pLinearized = m_pSyntax->GetObject(nullptr, objnum, gennum, true);
if (!m_pLinearized)
- return FALSE;
+ return false;
CPDF_Dictionary* pDict = m_pLinearized->GetDict();
if (pDict && pDict->GetObjectFor("Linearized")) {
@@ -1472,11 +1472,11 @@ FX_BOOL CPDF_Parser::IsLinearizedFile(IFX_SeekableReadStream* pFileAccess,
if (!pLen) {
m_pLinearized->Release();
m_pLinearized = nullptr;
- return FALSE;
+ return false;
}
if (pLen->GetInteger() != (int)pFileAccess->GetSize())
- return FALSE;
+ return false;
if (CPDF_Number* pNo = ToNumber(pDict->GetObjectFor("P")))
m_dwFirstPageNo = pNo->GetInteger();
@@ -1484,11 +1484,11 @@ FX_BOOL CPDF_Parser::IsLinearizedFile(IFX_SeekableReadStream* pFileAccess,
if (CPDF_Number* pTable = ToNumber(pDict->GetObjectFor("T")))
m_LastXRefOffset = pTable->GetInteger();
- return TRUE;
+ return true;
}
m_pLinearized->Release();
m_pLinearized = nullptr;
- return FALSE;
+ return false;
}
CPDF_Parser::Error CPDF_Parser::StartLinearizedParse(
@@ -1496,7 +1496,7 @@ CPDF_Parser::Error CPDF_Parser::StartLinearizedParse(
CPDF_Document* pDocument) {
ASSERT(!m_bHasParsed);
- m_bXRefStream = FALSE;
+ m_bXRefStream = false;
m_LastXRefOffset = 0;
m_bOwnFileRead = true;
@@ -1513,13 +1513,13 @@ CPDF_Parser::Error CPDF_Parser::StartLinearizedParse(
FX_FILESIZE dwFirstXRefOffset = m_pSyntax->SavePos();
- FX_BOOL bXRefRebuilt = FALSE;
- FX_BOOL bLoadV4 = LoadCrossRefV4(dwFirstXRefOffset, 0, FALSE);
- if (!bLoadV4 && !LoadCrossRefV5(&dwFirstXRefOffset, TRUE)) {
+ bool bXRefRebuilt = false;
+ bool bLoadV4 = LoadCrossRefV4(dwFirstXRefOffset, 0, false);
+ if (!bLoadV4 && !LoadCrossRefV5(&dwFirstXRefOffset, true)) {
if (!RebuildCrossRef())
return FORMAT_ERROR;
- bXRefRebuilt = TRUE;
+ bXRefRebuilt = true;
m_LastXRefOffset = 0;
}
@@ -1573,23 +1573,23 @@ CPDF_Parser::Error CPDF_Parser::StartLinearizedParse(
return SUCCESS;
}
-FX_BOOL CPDF_Parser::LoadLinearizedAllCrossRefV5(FX_FILESIZE xrefpos) {
- if (!LoadCrossRefV5(&xrefpos, FALSE))
- return FALSE;
+bool CPDF_Parser::LoadLinearizedAllCrossRefV5(FX_FILESIZE xrefpos) {
+ if (!LoadCrossRefV5(&xrefpos, false))
+ return false;
std::set<FX_FILESIZE> seen_xrefpos;
while (xrefpos) {
seen_xrefpos.insert(xrefpos);
- if (!LoadCrossRefV5(&xrefpos, FALSE))
- return FALSE;
+ if (!LoadCrossRefV5(&xrefpos, false))
+ return false;
// Check for circular references.
if (pdfium::ContainsKey(seen_xrefpos, xrefpos))
- return FALSE;
+ return false;
}
m_ObjectStreamMap.clear();
- m_bXRefStream = TRUE;
- return TRUE;
+ m_bXRefStream = true;
+ return true;
}
CPDF_Parser::Error CPDF_Parser::LoadLinearizedMainXRefTable() {