| Index: xfa/fxfa/fm2js/xfa_fmparse.cpp
|
| diff --git a/xfa/fxfa/fm2js/xfa_fmparse.cpp b/xfa/fxfa/fm2js/xfa_fmparse.cpp
|
| index 53e94666de4953a6b5527863c11fa0c6a9d2ebde..2dfdfdb4d2c5fe54e6b1560f82c59b4ca7ca8d06 100644
|
| --- a/xfa/fxfa/fm2js/xfa_fmparse.cpp
|
| +++ b/xfa/fxfa/fm2js/xfa_fmparse.cpp
|
| @@ -78,9 +78,8 @@ CXFA_FMParse::ParseTopExpression() {
|
| }
|
|
|
| std::unique_ptr<CXFA_FMExpression> CXFA_FMParse::ParseFunction() {
|
| - std::unique_ptr<CXFA_FMExpression> expr;
|
| CFX_WideStringC ident;
|
| - std::unique_ptr<CFX_WideStringCArray> pArguments;
|
| + std::vector<CFX_WideStringC> arguments;
|
| std::vector<std::unique_ptr<CXFA_FMExpression>> expressions;
|
| uint32_t line = m_pToken->m_uLinenum;
|
| NextToken();
|
| @@ -96,12 +95,9 @@ std::unique_ptr<CXFA_FMExpression> CXFA_FMParse::ParseFunction() {
|
| if (m_pToken->m_type == TOKrparen) {
|
| NextToken();
|
| } else {
|
| - pArguments = pdfium::MakeUnique<CFX_WideStringCArray>();
|
| - CFX_WideStringC p;
|
| while (1) {
|
| if (m_pToken->m_type == TOKidentifier) {
|
| - p = m_pToken->m_wstring;
|
| - pArguments->Add(p);
|
| + arguments.push_back(m_pToken->m_wstring);
|
| NextToken();
|
| if (m_pToken->m_type == TOKcomma) {
|
| NextToken();
|
| @@ -129,13 +125,11 @@ std::unique_ptr<CXFA_FMExpression> CXFA_FMParse::ParseFunction() {
|
| expressions = ParseTopExpression();
|
| Check(TOKendfunc);
|
| }
|
| - if (m_pErrorInfo->message.IsEmpty()) {
|
| - expr = pdfium::MakeUnique<CXFA_FMFunctionDefinition>(
|
| - line, false, ident, std::move(pArguments), std::move(expressions));
|
| - } else if (pArguments) {
|
| - pArguments->RemoveAll();
|
| - }
|
| - return expr;
|
| + if (!m_pErrorInfo->message.IsEmpty())
|
| + return nullptr;
|
| +
|
| + return pdfium::MakeUnique<CXFA_FMFunctionDefinition>(
|
| + line, false, ident, std::move(arguments), std::move(expressions));
|
| }
|
|
|
| std::unique_ptr<CXFA_FMExpression> CXFA_FMParse::ParseExpression() {
|
|
|