summaryrefslogtreecommitdiff
path: root/core/fpdfdoc
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfdoc')
-rw-r--r--core/fpdfdoc/cpdf_formfield.cpp11
-rw-r--r--core/fpdfdoc/cpdf_nametree.cpp12
-rw-r--r--core/fpdfdoc/cpdf_structtree.cpp5
3 files changed, 11 insertions, 17 deletions
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index 395b5c5713..2502fe6faa 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -25,8 +25,6 @@
namespace {
-const int kMaxRecursion = 32;
-
const int kFormListMultiSelect = 0x100;
const int kFormComboEdit = 0x100;
@@ -50,9 +48,8 @@ bool IsUnison(CPDF_FormField* pField) {
CPDF_Object* FPDF_GetFieldAttr(const CPDF_Dictionary* pFieldDict,
const char* name,
int nLevel) {
- if (nLevel > kMaxRecursion)
- return nullptr;
- if (!pFieldDict)
+ static constexpr int kGetFieldMaxRecursion = 32;
+ if (!pFieldDict || nLevel > kGetFieldMaxRecursion)
return nullptr;
CPDF_Object* pAttr = pFieldDict->GetDirectObjectFor(name);
@@ -60,9 +57,7 @@ CPDF_Object* FPDF_GetFieldAttr(const CPDF_Dictionary* pFieldDict,
return pAttr;
CPDF_Dictionary* pParent = pFieldDict->GetDictFor("Parent");
- if (!pParent)
- return nullptr;
- return FPDF_GetFieldAttr(pParent, name, nLevel + 1);
+ return pParent ? FPDF_GetFieldAttr(pParent, name, nLevel + 1) : nullptr;
}
WideString FPDF_GetFullName(CPDF_Dictionary* pFieldDict) {
diff --git a/core/fpdfdoc/cpdf_nametree.cpp b/core/fpdfdoc/cpdf_nametree.cpp
index 631571c9e4..3c5b08db21 100644
--- a/core/fpdfdoc/cpdf_nametree.cpp
+++ b/core/fpdfdoc/cpdf_nametree.cpp
@@ -17,7 +17,7 @@
namespace {
-const int nMaxRecursion = 32;
+constexpr int kNameTreeMaxRecursion = 32;
std::pair<WideString, WideString> GetNodeLimitsMaybeSwap(CPDF_Array* pLimits) {
ASSERT(pLimits);
@@ -40,7 +40,7 @@ bool GetNodeAncestorsLimits(const CPDF_Dictionary* pNode,
const CPDF_Array* pFind,
int nLevel,
std::vector<CPDF_Array*>* pLimits) {
- if (nLevel > nMaxRecursion)
+ if (nLevel > kNameTreeMaxRecursion)
return false;
if (pNode->GetArrayFor("Names") == pFind) {
@@ -72,7 +72,7 @@ bool UpdateNodesAndLimitsUponDeletion(CPDF_Dictionary* pNode,
const CPDF_Array* pFind,
const WideString& csName,
int nLevel) {
- if (nLevel > nMaxRecursion)
+ if (nLevel > kNameTreeMaxRecursion)
return false;
CPDF_Array* pLimits = pNode->GetArrayFor("Limits");
@@ -159,7 +159,7 @@ CPDF_Object* SearchNameNodeByName(const CPDF_Dictionary* pNode,
size_t* nIndex,
CPDF_Array** ppFind,
int* pFindIndex) {
- if (nLevel > nMaxRecursion)
+ if (nLevel > kNameTreeMaxRecursion)
return nullptr;
CPDF_Array* pLimits = pNode->GetArrayFor("Limits");
@@ -235,7 +235,7 @@ CPDF_Object* SearchNameNodeByIndex(const CPDF_Dictionary* pNode,
WideString* csName,
CPDF_Array** ppFind,
int* pFindIndex) {
- if (nLevel > nMaxRecursion)
+ if (nLevel > kNameTreeMaxRecursion)
return nullptr;
CPDF_Array* pNames = pNode->GetArrayFor("Names");
@@ -272,7 +272,7 @@ CPDF_Object* SearchNameNodeByIndex(const CPDF_Dictionary* pNode,
// Get the total number of key-value pairs in the tree with root |pNode|.
size_t CountNamesInternal(CPDF_Dictionary* pNode, int nLevel) {
- if (nLevel > nMaxRecursion)
+ if (nLevel > kNameTreeMaxRecursion)
return 0;
CPDF_Array* pNames = pNode->GetArrayFor("Names");
diff --git a/core/fpdfdoc/cpdf_structtree.cpp b/core/fpdfdoc/cpdf_structtree.cpp
index 48b83f555c..97db691425 100644
--- a/core/fpdfdoc/cpdf_structtree.cpp
+++ b/core/fpdfdoc/cpdf_structtree.cpp
@@ -15,8 +15,6 @@
namespace {
-const int nMaxRecursion = 32;
-
bool IsTagged(const CPDF_Document* pDoc) {
const CPDF_Dictionary* pCatalog = pDoc->GetRoot();
const CPDF_Dictionary* pMarkInfo = pCatalog->GetDictFor("MarkInfo");
@@ -87,7 +85,8 @@ RetainPtr<CPDF_StructElement> CPDF_StructTree::AddPageNode(
CPDF_Dictionary* pDict,
std::map<CPDF_Dictionary*, RetainPtr<CPDF_StructElement>>* map,
int nLevel) {
- if (nLevel > nMaxRecursion)
+ static constexpr int kStructTreeMaxRecursion = 32;
+ if (nLevel > kStructTreeMaxRecursion)
return nullptr;
auto it = map->find(pDict);