diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-07-26 19:34:26 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-26 19:34:26 +0000 |
commit | c9171e16d9d4477501d326d8d456fdc03e0f832e (patch) | |
tree | 89a91af4803e820b2e7f8c6e9901915c3415d72c /xfa/fxfa/parser/cxfa_xmllocale.cpp | |
parent | ea360af9048e7083107f9e27f8967351df241f70 (diff) | |
download | pdfium-c9171e16d9d4477501d326d8d456fdc03e0f832e.tar.xz |
Use moar ToXMLElement() in place of static_cast<>.
Introduces checks in a few new places, but mainly just consolidates
checking/casting logic.
Change-Id: I634a03060d254db099972c6978249992367e146c
Reviewed-on: https://pdfium-review.googlesource.com/38900
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'xfa/fxfa/parser/cxfa_xmllocale.cpp')
-rw-r--r-- | xfa/fxfa/parser/cxfa_xmllocale.cpp | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/xfa/fxfa/parser/cxfa_xmllocale.cpp b/xfa/fxfa/parser/cxfa_xmllocale.cpp index 1922b31d7e..e4858e907e 100644 --- a/xfa/fxfa/parser/cxfa_xmllocale.cpp +++ b/xfa/fxfa/parser/cxfa_xmllocale.cpp @@ -41,17 +41,15 @@ std::unique_ptr<CXFA_XMLLocale> CXFA_XMLLocale::Create( CFX_XMLElement* locale = nullptr; for (auto* child = doc->GetRoot()->GetFirstChild(); child; child = child->GetNextSibling()) { - if (child->GetType() != FX_XMLNODE_Element) - continue; - - CFX_XMLElement* elem = static_cast<CFX_XMLElement*>(child); - if (elem->GetName() == L"locale") { + CFX_XMLElement* elem = ToXMLElement(child); + if (elem && elem->GetName() == L"locale") { locale = elem; break; } } if (!locale) return nullptr; + return pdfium::MakeUnique<CXFA_XMLLocale>(std::move(doc), locale); } @@ -129,11 +127,8 @@ WideString CXFA_XMLLocale::GetCalendarSymbol(const WideStringView& symbol, CFX_XMLElement* name_child = nullptr; for (auto* name = child->GetFirstChild(); name; name = name->GetNextSibling()) { - if (name->GetType() != FX_XMLNODE_Element) - continue; - - auto* elem = static_cast<CFX_XMLElement*>(name); - if (elem->GetName() != pstrSymbolNames) + CFX_XMLElement* elem = ToXMLElement(name); + if (!elem || elem->GetName() != pstrSymbolNames) continue; WideString abbr = elem->GetAttribute(L"abbr"); @@ -213,16 +208,11 @@ WideString CXFA_XMLLocale::GetPattern(CFX_XMLElement* patterns, const WideStringView& wsName) const { for (auto* child = patterns->GetFirstChild(); child; child = child->GetNextSibling()) { - if (child->GetType() != FX_XMLNODE_Element) - continue; - - CFX_XMLElement* pattern = static_cast<CFX_XMLElement*>(child); - if (pattern->GetName() != bsTag) - continue; - if (pattern->GetAttribute(L"name") != wsName) - continue; - - return pattern->GetTextData(); + CFX_XMLElement* pattern = ToXMLElement(child); + if (pattern && pattern->GetName() == bsTag && + pattern->GetAttribute(L"name") == wsName) { + return pattern->GetTextData(); + } } return L""; } |