Simplify CFXJSE_NodeHelper::CreateNodeForCondition(). Avoid making ints from string literals. Simplify flow and avoid boolean state variable `bAll`. Change-Id: I79d9d03c9fb4884031e32869aff717f40d8f1148 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/117672 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Thomas Sepez <tsepez@google.com> Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/xfa/cfxjse_nodehelper.cpp b/fxjs/xfa/cfxjse_nodehelper.cpp index de24aa4..bfdd786 100644 --- a/fxjs/xfa/cfxjse_nodehelper.cpp +++ b/fxjs/xfa/cfxjse_nodehelper.cpp
@@ -21,36 +21,30 @@ bool CFXJSE_NodeHelper::CreateNodeForCondition(const WideString& wsCondition) { size_t szLen = wsCondition.GetLength(); - WideString wsIndex(L"0"); - bool bAll = false; if (szLen == 0) { m_iCreateFlag = CFXJSE_Engine::ResolveResult::Type::kCreateNodeOne; return false; } - if (wsCondition[0] != '[') + if (wsCondition[0] != '[') { return false; - + } size_t i = 1; for (; i < szLen; ++i) { wchar_t ch = wsCondition[i]; - if (ch == ' ') - continue; - - if (ch == '*') - bAll = true; - break; + if (ch == '*') { + m_iCreateFlag = CFXJSE_Engine::ResolveResult::Type::kCreateNodeAll; + m_iCreateCount = 1; + return true; + } + if (ch != ' ') { + break; + } } - if (bAll) { - wsIndex = L"1"; - m_iCreateFlag = CFXJSE_Engine::ResolveResult::Type::kCreateNodeAll; - } else { - m_iCreateFlag = CFXJSE_Engine::ResolveResult::Type::kCreateNodeOne; - wsIndex = wsCondition.Substr(i, szLen - 1 - i); - } - int32_t iCount = wsIndex.GetInteger(); - if (iCount < 0) + m_iCreateFlag = CFXJSE_Engine::ResolveResult::Type::kCreateNodeOne; + int32_t iCount = wsCondition.Substr(i, szLen - 1 - i).GetInteger(); + if (iCount < 0) { return false; - + } m_iCreateCount = iCount; return true; }