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

Side by Side Diff: xfa/fxfa/fm2js/xfa_expression.cpp

Issue 2534143003: Use unique_ptr in CFXA_FM expressions (Closed)
Patch Set: Comments Created 4 years 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 unified diff | Download patch
« no previous file with comments | « xfa/fxfa/fm2js/xfa_expression.h ('k') | xfa/fxfa/fm2js/xfa_fmparse.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fxfa/fm2js/xfa_expression.h" 7 #include "xfa/fxfa/fm2js/xfa_expression.h"
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 javascript << RUNTIMEFUNCTIONRETURNVALUE; 96 javascript << RUNTIMEFUNCTIONRETURNVALUE;
97 } 97 }
98 javascript << FX_WSTRC(L";\n}\n"); 98 javascript << FX_WSTRC(L";\n}\n");
99 if (m_isGlobal) { 99 if (m_isGlobal) {
100 javascript << FX_WSTRC(L").call(this);\n"); 100 javascript << FX_WSTRC(L").call(this);\n");
101 } 101 }
102 } 102 }
103 103
104 void CXFA_FMFunctionDefinition::ToImpliedReturnJS(CFX_WideTextBuf&) {} 104 void CXFA_FMFunctionDefinition::ToImpliedReturnJS(CFX_WideTextBuf&) {}
105 105
106 CXFA_FMVarExpression::CXFA_FMVarExpression(uint32_t line, 106 CXFA_FMVarExpression::CXFA_FMVarExpression(
107 const CFX_WideStringC& wsName, 107 uint32_t line,
108 CXFA_FMExpression* pInit) 108 const CFX_WideStringC& wsName,
109 std::unique_ptr<CXFA_FMExpression> pInit)
109 : CXFA_FMExpression(line, XFA_FM_EXPTYPE_VAR), 110 : CXFA_FMExpression(line, XFA_FM_EXPTYPE_VAR),
110 m_wsName(wsName), 111 m_wsName(wsName),
111 m_pInit(pInit) {} 112 m_pInit(std::move(pInit)) {}
112 113
113 CXFA_FMVarExpression::~CXFA_FMVarExpression() {} 114 CXFA_FMVarExpression::~CXFA_FMVarExpression() {}
114 115
115 void CXFA_FMVarExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 116 void CXFA_FMVarExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
116 javascript << FX_WSTRC(L"var "); 117 javascript << FX_WSTRC(L"var ");
117 CFX_WideString tempName(m_wsName); 118 CFX_WideString tempName(m_wsName);
118 if (m_wsName.GetAt(0) == L'!') { 119 if (m_wsName.GetAt(0) == L'!') {
119 tempName = EXCLAMATION_IN_IDENTIFIER + m_wsName.Mid(1); 120 tempName = EXCLAMATION_IN_IDENTIFIER + m_wsName.Mid(1);
120 } 121 }
121 javascript << tempName; 122 javascript << tempName;
(...skipping 29 matching lines...) Expand all
151 javascript << FX_WSTRC(L");\n"); 152 javascript << FX_WSTRC(L");\n");
152 } else { 153 } else {
153 javascript << FX_WSTRC(L"\"\";\n"); 154 javascript << FX_WSTRC(L"\"\";\n");
154 } 155 }
155 javascript << RUNTIMEFUNCTIONRETURNVALUE; 156 javascript << RUNTIMEFUNCTIONRETURNVALUE;
156 javascript << FX_WSTRC(L" = "); 157 javascript << FX_WSTRC(L" = ");
157 javascript << tempName; 158 javascript << tempName;
158 javascript << FX_WSTRC(L";\n"); 159 javascript << FX_WSTRC(L";\n");
159 } 160 }
160 161
161 CXFA_FMExpExpression::CXFA_FMExpExpression(uint32_t line, 162 CXFA_FMExpExpression::CXFA_FMExpExpression(
162 CXFA_FMSimpleExpression* pExpression) 163 uint32_t line,
163 : CXFA_FMExpression(line, XFA_FM_EXPTYPE_EXP), m_pExpression(pExpression) {} 164 std::unique_ptr<CXFA_FMSimpleExpression> pExpression)
165 : CXFA_FMExpression(line, XFA_FM_EXPTYPE_EXP),
166 m_pExpression(std::move(pExpression)) {}
164 167
165 CXFA_FMExpExpression::~CXFA_FMExpExpression() {} 168 CXFA_FMExpExpression::~CXFA_FMExpExpression() {}
166 169
167 void CXFA_FMExpExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 170 void CXFA_FMExpExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
168 if (m_pExpression->GetOperatorToken() == TOKassign) { 171 if (m_pExpression->GetOperatorToken() == TOKassign) {
169 m_pExpression->ToJavaScript(javascript); 172 m_pExpression->ToJavaScript(javascript);
170 } else { 173 } else {
171 m_pExpression->ToJavaScript(javascript); 174 m_pExpression->ToJavaScript(javascript);
172 javascript << FX_WSTRC(L";\n"); 175 javascript << FX_WSTRC(L";\n");
173 } 176 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 javascript << FX_WSTRC(L"{\n"); 219 javascript << FX_WSTRC(L"{\n");
217 for (const auto& expr : m_ExpressionList) { 220 for (const auto& expr : m_ExpressionList) {
218 if (expr == m_ExpressionList.back()) 221 if (expr == m_ExpressionList.back())
219 expr->ToImpliedReturnJS(javascript); 222 expr->ToImpliedReturnJS(javascript);
220 else 223 else
221 expr->ToJavaScript(javascript); 224 expr->ToJavaScript(javascript);
222 } 225 }
223 javascript << FX_WSTRC(L"}\n"); 226 javascript << FX_WSTRC(L"}\n");
224 } 227 }
225 228
226 CXFA_FMDoExpression::CXFA_FMDoExpression(uint32_t line, 229 CXFA_FMDoExpression::CXFA_FMDoExpression(
227 CXFA_FMExpression* pList) 230 uint32_t line,
228 : CXFA_FMExpression(line), m_pList(pList) {} 231 std::unique_ptr<CXFA_FMExpression> pList)
232 : CXFA_FMExpression(line), m_pList(std::move(pList)) {}
229 233
230 CXFA_FMDoExpression::~CXFA_FMDoExpression() {} 234 CXFA_FMDoExpression::~CXFA_FMDoExpression() {}
231 235
232 void CXFA_FMDoExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 236 void CXFA_FMDoExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
233 m_pList->ToJavaScript(javascript); 237 m_pList->ToJavaScript(javascript);
234 } 238 }
235 239
236 void CXFA_FMDoExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { 240 void CXFA_FMDoExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {
237 m_pList->ToImpliedReturnJS(javascript); 241 m_pList->ToImpliedReturnJS(javascript);
238 } 242 }
239 243
240 CXFA_FMIfExpression::CXFA_FMIfExpression(uint32_t line, 244 CXFA_FMIfExpression::CXFA_FMIfExpression(
241 CXFA_FMSimpleExpression* pExpression, 245 uint32_t line,
242 CXFA_FMExpression* pIfExpression, 246 std::unique_ptr<CXFA_FMSimpleExpression> pExpression,
243 CXFA_FMExpression* pElseExpression) 247 std::unique_ptr<CXFA_FMExpression> pIfExpression,
248 std::unique_ptr<CXFA_FMExpression> pElseExpression)
244 : CXFA_FMExpression(line, XFA_FM_EXPTYPE_IF), 249 : CXFA_FMExpression(line, XFA_FM_EXPTYPE_IF),
245 m_pExpression(pExpression), 250 m_pExpression(std::move(pExpression)),
246 m_pIfExpression(pIfExpression), 251 m_pIfExpression(std::move(pIfExpression)),
247 m_pElseExpression(pElseExpression) {} 252 m_pElseExpression(std::move(pElseExpression)) {}
248 253
249 CXFA_FMIfExpression::~CXFA_FMIfExpression() {} 254 CXFA_FMIfExpression::~CXFA_FMIfExpression() {}
250 255
251 void CXFA_FMIfExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 256 void CXFA_FMIfExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
252 javascript << FX_WSTRC(L"if ("); 257 javascript << FX_WSTRC(L"if (");
253 if (m_pExpression) { 258 if (m_pExpression) {
254 javascript << XFA_FM_EXPTypeToString(GETFMVALUE); 259 javascript << XFA_FM_EXPTypeToString(GETFMVALUE);
255 javascript << FX_WSTRC(L"("); 260 javascript << FX_WSTRC(L"(");
256 m_pExpression->ToJavaScript(javascript); 261 m_pExpression->ToJavaScript(javascript);
257 javascript << FX_WSTRC(L")"); 262 javascript << FX_WSTRC(L")");
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 } 306 }
302 307
303 CXFA_FMLoopExpression::~CXFA_FMLoopExpression() {} 308 CXFA_FMLoopExpression::~CXFA_FMLoopExpression() {}
304 309
305 void CXFA_FMLoopExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} 310 void CXFA_FMLoopExpression::ToJavaScript(CFX_WideTextBuf& javascript) {}
306 311
307 void CXFA_FMLoopExpression::ToImpliedReturnJS(CFX_WideTextBuf&) {} 312 void CXFA_FMLoopExpression::ToImpliedReturnJS(CFX_WideTextBuf&) {}
308 313
309 CXFA_FMWhileExpression::CXFA_FMWhileExpression( 314 CXFA_FMWhileExpression::CXFA_FMWhileExpression(
310 uint32_t line, 315 uint32_t line,
311 CXFA_FMSimpleExpression* pCondition, 316 std::unique_ptr<CXFA_FMSimpleExpression> pCondition,
312 CXFA_FMExpression* pExpression) 317 std::unique_ptr<CXFA_FMExpression> pExpression)
313 : CXFA_FMLoopExpression(line), 318 : CXFA_FMLoopExpression(line),
314 m_pCondition(pCondition), 319 m_pCondition(std::move(pCondition)),
315 m_pExpression(pExpression) {} 320 m_pExpression(std::move(pExpression)) {}
316 321
317 CXFA_FMWhileExpression::~CXFA_FMWhileExpression() {} 322 CXFA_FMWhileExpression::~CXFA_FMWhileExpression() {}
318 323
319 void CXFA_FMWhileExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 324 void CXFA_FMWhileExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
320 javascript << FX_WSTRC(L"while ("); 325 javascript << FX_WSTRC(L"while (");
321 m_pCondition->ToJavaScript(javascript); 326 m_pCondition->ToJavaScript(javascript);
322 javascript << FX_WSTRC(L")\n"); 327 javascript << FX_WSTRC(L")\n");
323 m_pExpression->ToJavaScript(javascript); 328 m_pExpression->ToJavaScript(javascript);
324 } 329 }
325 330
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 javascript << FX_WSTRC(L" = 0;\n"); 364 javascript << FX_WSTRC(L" = 0;\n");
360 javascript << FX_WSTRC(L"continue;\n"); 365 javascript << FX_WSTRC(L"continue;\n");
361 } 366 }
362 367
363 void CXFA_FMContinueExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { 368 void CXFA_FMContinueExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {
364 javascript << RUNTIMEFUNCTIONRETURNVALUE; 369 javascript << RUNTIMEFUNCTIONRETURNVALUE;
365 javascript << FX_WSTRC(L" = 0;\n"); 370 javascript << FX_WSTRC(L" = 0;\n");
366 javascript << FX_WSTRC(L"continue;\n"); 371 javascript << FX_WSTRC(L"continue;\n");
367 } 372 }
368 373
369 CXFA_FMForExpression::CXFA_FMForExpression(uint32_t line, 374 CXFA_FMForExpression::CXFA_FMForExpression(
370 const CFX_WideStringC& wsVariant, 375 uint32_t line,
371 CXFA_FMSimpleExpression* pAssignment, 376 const CFX_WideStringC& wsVariant,
372 CXFA_FMSimpleExpression* pAccessor, 377 std::unique_ptr<CXFA_FMSimpleExpression> pAssignment,
373 int32_t iDirection, 378 std::unique_ptr<CXFA_FMSimpleExpression> pAccessor,
374 CXFA_FMSimpleExpression* pStep, 379 int32_t iDirection,
375 CXFA_FMExpression* pList) 380 std::unique_ptr<CXFA_FMSimpleExpression> pStep,
381 std::unique_ptr<CXFA_FMExpression> pList)
376 : CXFA_FMLoopExpression(line), 382 : CXFA_FMLoopExpression(line),
377 m_wsVariant(wsVariant), 383 m_wsVariant(wsVariant),
378 m_pAssignment(pAssignment), 384 m_pAssignment(std::move(pAssignment)),
379 m_pAccessor(pAccessor), 385 m_pAccessor(std::move(pAccessor)),
380 m_iDirection(iDirection), 386 m_iDirection(iDirection),
381 m_pStep(pStep), 387 m_pStep(std::move(pStep)),
382 m_pList(pList) {} 388 m_pList(std::move(pList)) {}
383 389
384 CXFA_FMForExpression::~CXFA_FMForExpression() {} 390 CXFA_FMForExpression::~CXFA_FMForExpression() {}
385 391
386 void CXFA_FMForExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 392 void CXFA_FMForExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
387 javascript << FX_WSTRC(L"{\nvar "); 393 javascript << FX_WSTRC(L"{\nvar ");
388 CFX_WideString tempVariant; 394 CFX_WideString tempVariant;
389 if (m_wsVariant.GetAt(0) == L'!') { 395 if (m_wsVariant.GetAt(0) == L'!') {
390 tempVariant = EXCLAMATION_IN_IDENTIFIER + m_wsVariant.Mid(1); 396 tempVariant = EXCLAMATION_IN_IDENTIFIER + m_wsVariant.Mid(1);
391 javascript << tempVariant; 397 javascript << tempVariant;
392 } else { 398 } else {
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 } 486 }
481 javascript << FX_WSTRC(L")\n"); 487 javascript << FX_WSTRC(L")\n");
482 m_pList->ToImpliedReturnJS(javascript); 488 m_pList->ToImpliedReturnJS(javascript);
483 javascript << FX_WSTRC(L"}\n"); 489 javascript << FX_WSTRC(L"}\n");
484 } 490 }
485 491
486 CXFA_FMForeachExpression::CXFA_FMForeachExpression( 492 CXFA_FMForeachExpression::CXFA_FMForeachExpression(
487 uint32_t line, 493 uint32_t line,
488 const CFX_WideStringC& wsIdentifier, 494 const CFX_WideStringC& wsIdentifier,
489 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>>&& pAccessors, 495 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>>&& pAccessors,
490 CXFA_FMExpression* pList) 496 std::unique_ptr<CXFA_FMExpression> pList)
491 : CXFA_FMLoopExpression(line), 497 : CXFA_FMLoopExpression(line),
492 m_wsIdentifier(wsIdentifier), 498 m_wsIdentifier(wsIdentifier),
493 m_pAccessors(std::move(pAccessors)), 499 m_pAccessors(std::move(pAccessors)),
494 m_pList(pList) {} 500 m_pList(std::move(pList)) {}
495 501
496 CXFA_FMForeachExpression::~CXFA_FMForeachExpression() {} 502 CXFA_FMForeachExpression::~CXFA_FMForeachExpression() {}
497 503
498 void CXFA_FMForeachExpression::ToJavaScript(CFX_WideTextBuf& javascript) { 504 void CXFA_FMForeachExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
499 javascript << FX_WSTRC(L"{\n"); 505 javascript << FX_WSTRC(L"{\n");
500 javascript << FX_WSTRC(L"var "); 506 javascript << FX_WSTRC(L"var ");
501 if (m_wsIdentifier.GetAt(0) == L'!') { 507 if (m_wsIdentifier.GetAt(0) == L'!') {
502 CFX_WideString tempIdentifier = 508 CFX_WideString tempIdentifier =
503 EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1); 509 EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1);
504 javascript << tempIdentifier; 510 javascript << tempIdentifier;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 } 590 }
585 javascript << FX_WSTRC(L" = "); 591 javascript << FX_WSTRC(L" = ");
586 javascript << RUNTIMEBLOCKTEMPARRAY; 592 javascript << RUNTIMEBLOCKTEMPARRAY;
587 javascript << FX_WSTRC(L"["); 593 javascript << FX_WSTRC(L"[");
588 javascript << RUNTIMEBLOCKTEMPARRAYINDEX; 594 javascript << RUNTIMEBLOCKTEMPARRAYINDEX;
589 javascript << FX_WSTRC(L"++];\n"); 595 javascript << FX_WSTRC(L"++];\n");
590 m_pList->ToImpliedReturnJS(javascript); 596 m_pList->ToImpliedReturnJS(javascript);
591 javascript << FX_WSTRC(L"}\n"); 597 javascript << FX_WSTRC(L"}\n");
592 javascript << FX_WSTRC(L"}\n"); 598 javascript << FX_WSTRC(L"}\n");
593 } 599 }
OLDNEW
« no previous file with comments | « xfa/fxfa/fm2js/xfa_expression.h ('k') | xfa/fxfa/fm2js/xfa_fmparse.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698