| Index: xfa/fxfa/fm2js/xfa_program.cpp
|
| diff --git a/xfa/fxfa/fm2js/xfa_program.cpp b/xfa/fxfa/fm2js/xfa_program.cpp
|
| index 5146a5e1296b807e67fbb4af4a9e6c2ec3ed9d86..ac18c15e6d3b50f4b73f9298ea411e31fb2e9c8c 100644
|
| --- a/xfa/fxfa/fm2js/xfa_program.cpp
|
| +++ b/xfa/fxfa/fm2js/xfa_program.cpp
|
| @@ -6,6 +6,11 @@
|
|
|
| #include "xfa/fxfa/fm2js/xfa_program.h"
|
|
|
| +#include <utility>
|
| +#include <vector>
|
| +
|
| +#include "third_party/base/ptr_util.h"
|
| +
|
| CXFA_FMProgram::CXFA_FMProgram() {}
|
|
|
| CXFA_FMProgram::~CXFA_FMProgram() {}
|
| @@ -15,21 +20,17 @@ int32_t CXFA_FMProgram::Init(const CFX_WideStringC& wsFormcalc) {
|
| }
|
|
|
| int32_t CXFA_FMProgram::ParseProgram() {
|
| - CFX_ArrayTemplate<CXFA_FMExpression*>* expressions = nullptr;
|
| m_parse.NextToken();
|
| - if (!m_pErrorInfo.message.IsEmpty()) {
|
| + if (!m_pErrorInfo.message.IsEmpty())
|
| return -1;
|
| - }
|
| - expressions = m_parse.ParseTopExpression();
|
| - if (!m_pErrorInfo.message.IsEmpty()) {
|
| - for (int32_t u = 0; u < expressions->GetSize(); ++u)
|
| - delete expressions->GetAt(u);
|
|
|
| - delete expressions;
|
| + std::vector<std::unique_ptr<CXFA_FMExpression>> expressions =
|
| + m_parse.ParseTopExpression();
|
| + if (!m_pErrorInfo.message.IsEmpty())
|
| return -1;
|
| - }
|
| - m_globalFunction.reset(
|
| - new CXFA_FMFunctionDefinition(1, 1, FX_WSTRC(L""), nullptr, expressions));
|
| +
|
| + m_globalFunction = pdfium::MakeUnique<CXFA_FMFunctionDefinition>(
|
| + 1, true, L"", nullptr, std::move(expressions));
|
| return 0;
|
| }
|
|
|
|
|