summaryrefslogtreecommitdiff
path: root/core/fpdfdoc
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfdoc')
-rw-r--r--core/fpdfdoc/cpdf_nametree.cpp16
-rw-r--r--core/fpdfdoc/cpdf_nametree_unittest.cpp5
2 files changed, 11 insertions, 10 deletions
diff --git a/core/fpdfdoc/cpdf_nametree.cpp b/core/fpdfdoc/cpdf_nametree.cpp
index 04cb1b9e40..f30a27c681 100644
--- a/core/fpdfdoc/cpdf_nametree.cpp
+++ b/core/fpdfdoc/cpdf_nametree.cpp
@@ -43,14 +43,14 @@ CPDF_Object* SearchNameNode(CPDF_Dictionary* pNode,
for (size_t i = 0; i < dwCount; i++) {
CFX_WideString csValue = pNames->GetUnicodeTextAt(i * 2);
int32_t iCompare = csValue.Compare(csName);
- if (iCompare <= 0) {
- if (ppFind)
- *ppFind = pNames;
- if (iCompare < 0)
- continue;
- } else {
+ if (iCompare > 0)
break;
- }
+
+ if (ppFind)
+ *ppFind = pNames;
+ if (iCompare < 0)
+ continue;
+
nIndex += i;
return pNames->GetDirectObjectAt(i * 2 + 1);
}
@@ -170,7 +170,7 @@ int CPDF_NameTree::GetIndex(const CFX_WideString& csName) const {
CPDF_Object* CPDF_NameTree::LookupValueAndName(int nIndex,
CFX_WideString* csName) const {
- *csName = CFX_WideString();
+ csName->clear();
if (!m_pRoot)
return nullptr;
diff --git a/core/fpdfdoc/cpdf_nametree_unittest.cpp b/core/fpdfdoc/cpdf_nametree_unittest.cpp
index 28af9e078d..bffb496843 100644
--- a/core/fpdfdoc/cpdf_nametree_unittest.cpp
+++ b/core/fpdfdoc/cpdf_nametree_unittest.cpp
@@ -16,8 +16,9 @@ TEST(cpdf_nametree, GetUnicodeNameWithBOM) {
// Add the key "1" (with BOM) and value 100 into the array.
std::ostringstream buf;
- buf << static_cast<unsigned char>(254) << static_cast<unsigned char>(255)
- << static_cast<unsigned char>(0) << static_cast<unsigned char>(49);
+ constexpr char kData[] = "\xFE\xFF\x00\x31";
+ for (size_t i = 0; i < sizeof(kData); ++i)
+ buf.put(kData[i]);
pNames->AddNew<CPDF_String>(CFX_ByteString(buf), true);
pNames->AddNew<CPDF_Number>(100);