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;
}