summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-11-27 19:36:26 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-11-27 19:36:26 +0000
commit9a48fd1aabf105b168f5d8fc26549ae0d41d002e (patch)
tree846dd27b25365fa1fcb3b9c7a66574f1b5ae166f
parente6ccf2578ae04c796a69f3596e4b4730a45da378 (diff)
downloadpdfium-9a48fd1aabf105b168f5d8fc26549ae0d41d002e.tar.xz
Fold XFA_GetAttributeByName into CXFA_Node::NameToAttribute
This CL removes the xfa_utils helper and does the work directly in CXFA_Node. Change-Id: I4f7cac9cb6d2a53ac5627f50a2f066f79fc22a31 Reviewed-on: https://pdfium-review.googlesource.com/19290 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
-rw-r--r--xfa/fxfa/parser/cxfa_node.cpp14
-rw-r--r--xfa/fxfa/parser/xfa_utils.cpp15
-rw-r--r--xfa/fxfa/parser/xfa_utils.h1
-rw-r--r--xfa/fxfa/parser/xfa_utils_unittest.cpp9
4 files changed, 11 insertions, 28 deletions
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 4402208900..ee2a6df071 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -145,10 +145,18 @@ WideString CXFA_Node::AttributeToName(XFA_Attribute attr) {
// static
XFA_Attribute CXFA_Node::NameToAttribute(const WideStringView& name) {
- const XFA_ATTRIBUTEINFO* attr = XFA_GetAttributeByName(name);
- if (!attr)
+ if (name.IsEmpty())
return XFA_Attribute::Unknown;
- return attr->eName;
+
+ auto* it = std::lower_bound(g_XFAAttributeData,
+ g_XFAAttributeData + g_iXFAAttributeCount,
+ FX_HashCode_GetW(name, false),
+ [](const XFA_ATTRIBUTEINFO& arg, uint32_t hash) {
+ return arg.uHash < hash;
+ });
+ if (it != g_XFAAttributeData + g_iXFAAttributeCount && name == it->pName)
+ return it->eName;
+ return XFA_Attribute::Unknown;
}
CXFA_Node::CXFA_Node(CXFA_Document* pDoc,
diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp
index 03b8943a1f..7fb5ff573d 100644
--- a/xfa/fxfa/parser/xfa_utils.cpp
+++ b/xfa/fxfa/parser/xfa_utils.cpp
@@ -268,21 +268,6 @@ bool XFA_GetAttributeDefaultValue(void*& pValue,
return false;
}
-const XFA_ATTRIBUTEINFO* XFA_GetAttributeByName(const WideStringView& wsName) {
- if (wsName.IsEmpty())
- return nullptr;
-
- auto* it = std::lower_bound(g_XFAAttributeData,
- g_XFAAttributeData + g_iXFAAttributeCount,
- FX_HashCode_GetW(wsName, false),
- [](const XFA_ATTRIBUTEINFO& arg, uint32_t hash) {
- return arg.uHash < hash;
- });
- if (it != g_XFAAttributeData + g_iXFAAttributeCount && wsName == it->pName)
- return it;
- return nullptr;
-}
-
const XFA_ATTRIBUTEINFO* XFA_GetAttributeByID(XFA_Attribute eName) {
ASSERT(static_cast<uint8_t>(eName) < g_iXFAAttributeCount);
return g_XFAAttributeData + static_cast<uint8_t>(eName);
diff --git a/xfa/fxfa/parser/xfa_utils.h b/xfa/fxfa/parser/xfa_utils.h
index 08092563e8..afc1076d35 100644
--- a/xfa/fxfa/parser/xfa_utils.h
+++ b/xfa/fxfa/parser/xfa_utils.h
@@ -54,7 +54,6 @@ bool XFA_GetAttributeDefaultValue(void*& pValue,
XFA_Attribute eAttribute,
XFA_AttributeType eType,
uint32_t dwPacket);
-const XFA_ATTRIBUTEINFO* XFA_GetAttributeByName(const WideStringView& wsName);
const XFA_ATTRIBUTEINFO* XFA_GetAttributeByID(XFA_Attribute eName);
const XFA_ATTRIBUTEENUMINFO* XFA_GetAttributeEnumByName(
const WideStringView& wsName);
diff --git a/xfa/fxfa/parser/xfa_utils_unittest.cpp b/xfa/fxfa/parser/xfa_utils_unittest.cpp
index bd2c89d554..b27cdaa36e 100644
--- a/xfa/fxfa/parser/xfa_utils_unittest.cpp
+++ b/xfa/fxfa/parser/xfa_utils_unittest.cpp
@@ -23,15 +23,6 @@ TEST(XfaUtilsImpTest, XFA_MapRotation) {
}
}
-TEST(XFAUtilsTest, GetAttributeByName) {
- EXPECT_EQ(nullptr, XFA_GetAttributeByName(L""));
- EXPECT_EQ(nullptr, XFA_GetAttributeByName(L"nonesuch"));
- EXPECT_EQ(XFA_Attribute::H, XFA_GetAttributeByName(L"h")->eName);
- EXPECT_EQ(XFA_Attribute::Short, XFA_GetAttributeByName(L"short")->eName);
- EXPECT_EQ(XFA_Attribute::DecipherOnly,
- XFA_GetAttributeByName(L"decipherOnly")->eName);
-}
-
TEST(XFAUtilsTest, GetAttributeEnumByName) {
EXPECT_EQ(nullptr, XFA_GetAttributeEnumByName(L""));
EXPECT_EQ(nullptr, XFA_GetAttributeEnumByName(L"nonesuch"));