Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Unified Diff: xfa/fxfa/fm2js/xfa_expression.cpp

Issue 2530933002: Use unique pointers in CXFA_FMParse (Closed)
Patch Set: Address comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « xfa/fxfa/fm2js/xfa_expression.h ('k') | xfa/fxfa/fm2js/xfa_fmparse.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: xfa/fxfa/fm2js/xfa_expression.cpp
diff --git a/xfa/fxfa/fm2js/xfa_expression.cpp b/xfa/fxfa/fm2js/xfa_expression.cpp
index 5734593ff82edca8ead072757cabcf3491c3ee76..8d1888a797a88557b6c3b532ee90fcd801d48b8b 100644
--- a/xfa/fxfa/fm2js/xfa_expression.cpp
+++ b/xfa/fxfa/fm2js/xfa_expression.cpp
@@ -35,24 +35,17 @@ CXFA_FMFunctionDefinition::CXFA_FMFunctionDefinition(
bool isGlobal,
const CFX_WideStringC& wsName,
std::unique_ptr<CFX_WideStringCArray> pArguments,
- CFX_ArrayTemplate<CXFA_FMExpression*>* pExpressions)
+ std::vector<std::unique_ptr<CXFA_FMExpression>>&& pExpressions)
: CXFA_FMExpression(line, XFA_FM_EXPTYPE_FUNC),
m_wsName(wsName),
m_pArguments(std::move(pArguments)),
- m_pExpressions(pExpressions),
+ m_pExpressions(std::move(pExpressions)),
m_isGlobal(isGlobal) {}
-CXFA_FMFunctionDefinition::~CXFA_FMFunctionDefinition() {
- if (m_pExpressions) {
- for (int i = 0; i < m_pExpressions->GetSize(); ++i)
- delete m_pExpressions->GetAt(i);
-
- delete m_pExpressions;
- }
-}
+CXFA_FMFunctionDefinition::~CXFA_FMFunctionDefinition() {}
void CXFA_FMFunctionDefinition::ToJavaScript(CFX_WideTextBuf& javascript) {
- if (m_isGlobal && (!m_pExpressions || m_pExpressions->GetSize() == 0)) {
+ if (m_isGlobal && m_pExpressions.empty()) {
javascript << FX_WSTRC(L"// comments only");
return;
}
@@ -87,15 +80,11 @@ void CXFA_FMFunctionDefinition::ToJavaScript(CFX_WideTextBuf& javascript) {
javascript << FX_WSTRC(L"var ");
javascript << RUNTIMEFUNCTIONRETURNVALUE;
javascript << FX_WSTRC(L" = null;\n");
- if (m_pExpressions) {
- for (int i = 0; i < m_pExpressions->GetSize(); ++i) {
- CXFA_FMExpression* e = m_pExpressions->GetAt(i);
- if (i + 1 < m_pExpressions->GetSize()) {
- e->ToJavaScript(javascript);
- } else {
- e->ToImpliedReturnJS(javascript);
- }
- }
+ for (const auto& expr : m_pExpressions) {
+ if (expr == m_pExpressions.back())
+ expr->ToImpliedReturnJS(javascript);
+ else
+ expr->ToJavaScript(javascript);
}
javascript << FX_WSTRC(L"return ");
if (m_isGlobal) {
@@ -210,39 +199,26 @@ void CXFA_FMExpExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {
CXFA_FMBlockExpression::CXFA_FMBlockExpression(
uint32_t line,
- CFX_ArrayTemplate<CXFA_FMExpression*>* pExpressionList)
+ std::vector<std::unique_ptr<CXFA_FMExpression>>&& pExpressionList)
: CXFA_FMExpression(line, XFA_FM_EXPTYPE_BLOCK),
- m_pExpressionList(pExpressionList) {}
+ m_ExpressionList(std::move(pExpressionList)) {}
-CXFA_FMBlockExpression::~CXFA_FMBlockExpression() {
- if (m_pExpressionList) {
- for (int i = 0; i < m_pExpressionList->GetSize(); ++i)
- delete m_pExpressionList->GetAt(i);
-
- delete m_pExpressionList;
- }
-}
+CXFA_FMBlockExpression::~CXFA_FMBlockExpression() {}
void CXFA_FMBlockExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
javascript << FX_WSTRC(L"{\n");
- if (m_pExpressionList) {
- for (int i = 0; i < m_pExpressionList->GetSize(); ++i)
- m_pExpressionList->GetAt(i)->ToJavaScript(javascript);
- }
+ for (const auto& expr : m_ExpressionList)
+ expr->ToJavaScript(javascript);
javascript << FX_WSTRC(L"}\n");
}
void CXFA_FMBlockExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {
javascript << FX_WSTRC(L"{\n");
- if (m_pExpressionList) {
- for (int i = 0; i < m_pExpressionList->GetSize(); ++i) {
- CXFA_FMExpression* e = m_pExpressionList->GetAt(i);
- if (i + 1 == m_pExpressionList->GetSize()) {
- e->ToImpliedReturnJS(javascript);
- } else {
- e->ToJavaScript(javascript);
- }
- }
+ for (const auto& expr : m_ExpressionList) {
+ if (expr == m_ExpressionList.back())
+ expr->ToImpliedReturnJS(javascript);
+ else
+ expr->ToJavaScript(javascript);
}
javascript << FX_WSTRC(L"}\n");
}
@@ -536,12 +512,10 @@ void CXFA_FMForeachExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
javascript << XFA_FM_EXPTypeToString(CONCATFMOBJECT);
javascript << FX_WSTRC(L"(");
- for (size_t i = 0; i < m_pAccessors.size(); ++i) {
- CXFA_FMSimpleExpression* s = m_pAccessors.at(i).get();
- s->ToJavaScript(javascript);
- if (i + 1 < m_pAccessors.size()) {
- javascript << FX_WSTRC(L", ");
- }
+ for (const auto& expr : m_pAccessors) {
+ expr->ToJavaScript(javascript);
+ if (expr != m_pAccessors.back())
+ javascript << L", ";
}
javascript << FX_WSTRC(L");\n");
javascript << FX_WSTRC(L"var ");
@@ -587,12 +561,10 @@ void CXFA_FMForeachExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {
javascript << FX_WSTRC(L" = ");
javascript << XFA_FM_EXPTypeToString(CONCATFMOBJECT);
javascript << FX_WSTRC(L"(");
- for (size_t i = 0; i < m_pAccessors.size(); ++i) {
- CXFA_FMSimpleExpression* s = m_pAccessors.at(i).get();
- s->ToJavaScript(javascript);
- if (i + 1 < m_pAccessors.size()) {
- javascript << FX_WSTRC(L", ");
- }
+ for (const auto& expr : m_pAccessors) {
+ expr->ToJavaScript(javascript);
+ if (expr != m_pAccessors.back())
+ javascript << L", ";
}
javascript << FX_WSTRC(L");\n");
javascript << FX_WSTRC(L"var ");
« no previous file with comments | « xfa/fxfa/fm2js/xfa_expression.h ('k') | xfa/fxfa/fm2js/xfa_fmparse.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698