| Index: core/fpdfdoc/doc_basic.cpp
|
| diff --git a/core/fpdfdoc/doc_basic.cpp b/core/fpdfdoc/doc_basic.cpp
|
| index 9318387f7f6725b92136eabb2a88d36872002755..4a5d0f8b95487458670f68b6bc14ddc145a76691 100644
|
| --- a/core/fpdfdoc/doc_basic.cpp
|
| +++ b/core/fpdfdoc/doc_basic.cpp
|
| @@ -78,9 +78,10 @@ CPDF_NameTree::CPDF_NameTree(CPDF_Document* pDoc,
|
| else
|
| m_pRoot = NULL;
|
| }
|
| +
|
| static CPDF_Object* SearchNameNode(CPDF_Dictionary* pNode,
|
| const CFX_ByteString& csName,
|
| - int& nIndex,
|
| + size_t& nIndex,
|
| CPDF_Array** ppFind,
|
| int nLevel = 0) {
|
| if (nLevel > nMaxRecursion) {
|
| @@ -102,8 +103,8 @@ static CPDF_Object* SearchNameNode(CPDF_Dictionary* pNode,
|
| }
|
| CPDF_Array* pNames = pNode->GetArrayBy("Names");
|
| if (pNames) {
|
| - uint32_t dwCount = pNames->GetCount() / 2;
|
| - for (uint32_t i = 0; i < dwCount; i++) {
|
| + size_t dwCount = pNames->GetCount() / 2;
|
| + for (size_t i = 0; i < dwCount; i++) {
|
| CFX_ByteString csValue = pNames->GetStringAt(i * 2);
|
| int32_t iCompare = csValue.Compare(csName.AsByteStringC());
|
| if (iCompare <= 0) {
|
| @@ -126,7 +127,7 @@ static CPDF_Object* SearchNameNode(CPDF_Dictionary* pNode,
|
| if (!pKids) {
|
| return NULL;
|
| }
|
| - for (uint32_t i = 0; i < pKids->GetCount(); i++) {
|
| + for (size_t i = 0; i < pKids->GetCount(); i++) {
|
| CPDF_Dictionary* pKid = pKids->GetDictAt(i);
|
| if (!pKid) {
|
| continue;
|
| @@ -139,46 +140,44 @@ static CPDF_Object* SearchNameNode(CPDF_Dictionary* pNode,
|
| }
|
| return NULL;
|
| }
|
| +
|
| static CPDF_Object* SearchNameNode(CPDF_Dictionary* pNode,
|
| - int nIndex,
|
| - int& nCurIndex,
|
| + size_t nIndex,
|
| + size_t& nCurIndex,
|
| CFX_ByteString& csName,
|
| CPDF_Array** ppFind,
|
| int nLevel = 0) {
|
| - if (nLevel > nMaxRecursion) {
|
| + if (nLevel > nMaxRecursion)
|
| return NULL;
|
| - }
|
| +
|
| CPDF_Array* pNames = pNode->GetArrayBy("Names");
|
| if (pNames) {
|
| - int nCount = pNames->GetCount() / 2;
|
| + size_t nCount = pNames->GetCount() / 2;
|
| if (nIndex >= nCurIndex + nCount) {
|
| nCurIndex += nCount;
|
| return NULL;
|
| }
|
| - if (ppFind) {
|
| + if (ppFind)
|
| *ppFind = pNames;
|
| - }
|
| csName = pNames->GetStringAt((nIndex - nCurIndex) * 2);
|
| return pNames->GetDirectObjectAt((nIndex - nCurIndex) * 2 + 1);
|
| }
|
| CPDF_Array* pKids = pNode->GetArrayBy("Kids");
|
| - if (!pKids) {
|
| + if (!pKids)
|
| return NULL;
|
| - }
|
| - for (uint32_t i = 0; i < pKids->GetCount(); i++) {
|
| + for (size_t i = 0; i < pKids->GetCount(); i++) {
|
| CPDF_Dictionary* pKid = pKids->GetDictAt(i);
|
| - if (!pKid) {
|
| + if (!pKid)
|
| continue;
|
| - }
|
| CPDF_Object* pFound =
|
| SearchNameNode(pKid, nIndex, nCurIndex, csName, ppFind, nLevel + 1);
|
| - if (pFound) {
|
| + if (pFound)
|
| return pFound;
|
| - }
|
| }
|
| return NULL;
|
| }
|
| -static int CountNames(CPDF_Dictionary* pNode, int nLevel = 0) {
|
| +
|
| +static size_t CountNames(CPDF_Dictionary* pNode, int nLevel = 0) {
|
| if (nLevel > nMaxRecursion) {
|
| return 0;
|
| }
|
| @@ -190,8 +189,8 @@ static int CountNames(CPDF_Dictionary* pNode, int nLevel = 0) {
|
| if (!pKids) {
|
| return 0;
|
| }
|
| - int nCount = 0;
|
| - for (uint32_t i = 0; i < pKids->GetCount(); i++) {
|
| + size_t nCount = 0;
|
| + for (size_t i = 0; i < pKids->GetCount(); i++) {
|
| CPDF_Dictionary* pKid = pKids->GetDictAt(i);
|
| if (!pKid) {
|
| continue;
|
| @@ -200,17 +199,19 @@ static int CountNames(CPDF_Dictionary* pNode, int nLevel = 0) {
|
| }
|
| return nCount;
|
| }
|
| -int CPDF_NameTree::GetCount() const {
|
| +
|
| +size_t CPDF_NameTree::GetCount() const {
|
| if (!m_pRoot) {
|
| return 0;
|
| }
|
| return ::CountNames(m_pRoot);
|
| }
|
| +
|
| int CPDF_NameTree::GetIndex(const CFX_ByteString& csName) const {
|
| if (!m_pRoot) {
|
| return -1;
|
| }
|
| - int nIndex = 0;
|
| + size_t nIndex = 0;
|
| if (!SearchNameNode(m_pRoot, csName, nIndex, NULL)) {
|
| return -1;
|
| }
|
| @@ -221,14 +222,14 @@ CPDF_Object* CPDF_NameTree::LookupValue(int nIndex,
|
| if (!m_pRoot) {
|
| return NULL;
|
| }
|
| - int nCurIndex = 0;
|
| + size_t nCurIndex = 0;
|
| return SearchNameNode(m_pRoot, nIndex, nCurIndex, csName, NULL);
|
| }
|
| CPDF_Object* CPDF_NameTree::LookupValue(const CFX_ByteString& csName) const {
|
| if (!m_pRoot) {
|
| return NULL;
|
| }
|
| - int nIndex = 0;
|
| + size_t nIndex = 0;
|
| return SearchNameNode(m_pRoot, csName, nIndex, NULL);
|
| }
|
| CPDF_Array* CPDF_NameTree::LookupNamedDest(CPDF_Document* pDoc,
|
|
|