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

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

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 | « no previous file | xfa/fxfa/fm2js/xfa_expression.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 #ifndef XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ 7 #ifndef XFA_FXFA_FM2JS_XFA_EXPRESSION_H_
8 #define XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ 8 #define XFA_FXFA_FM2JS_XFA_EXPRESSION_H_
9 9
10 #include <memory> 10 #include <memory>
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 CFX_WideStringC m_wsName; 56 CFX_WideStringC m_wsName;
57 std::unique_ptr<CFX_WideStringCArray> m_pArguments; 57 std::unique_ptr<CFX_WideStringCArray> m_pArguments;
58 std::vector<std::unique_ptr<CXFA_FMExpression>> m_pExpressions; 58 std::vector<std::unique_ptr<CXFA_FMExpression>> m_pExpressions;
59 bool m_isGlobal; 59 bool m_isGlobal;
60 }; 60 };
61 61
62 class CXFA_FMVarExpression : public CXFA_FMExpression { 62 class CXFA_FMVarExpression : public CXFA_FMExpression {
63 public: 63 public:
64 CXFA_FMVarExpression(uint32_t line, 64 CXFA_FMVarExpression(uint32_t line,
65 const CFX_WideStringC& wsName, 65 const CFX_WideStringC& wsName,
66 CXFA_FMExpression* pInit); 66 std::unique_ptr<CXFA_FMExpression> pInit);
67 ~CXFA_FMVarExpression() override; 67 ~CXFA_FMVarExpression() override;
68 68
69 void ToJavaScript(CFX_WideTextBuf& javascript) override; 69 void ToJavaScript(CFX_WideTextBuf& javascript) override;
70 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 70 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
71 71
72 private: 72 private:
73 CFX_WideStringC m_wsName; 73 CFX_WideStringC m_wsName;
74 std::unique_ptr<CXFA_FMExpression> m_pInit; 74 std::unique_ptr<CXFA_FMExpression> m_pInit;
75 }; 75 };
76 76
77 class CXFA_FMExpExpression : public CXFA_FMExpression { 77 class CXFA_FMExpExpression : public CXFA_FMExpression {
78 public: 78 public:
79 CXFA_FMExpExpression(uint32_t line, CXFA_FMSimpleExpression* pExpression); 79 CXFA_FMExpExpression(uint32_t line,
80 std::unique_ptr<CXFA_FMSimpleExpression> pExpression);
80 ~CXFA_FMExpExpression() override; 81 ~CXFA_FMExpExpression() override;
81 82
82 void ToJavaScript(CFX_WideTextBuf& javascript) override; 83 void ToJavaScript(CFX_WideTextBuf& javascript) override;
83 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 84 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
84 85
85 private: 86 private:
86 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; 87 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression;
87 }; 88 };
88 89
89 class CXFA_FMBlockExpression : public CXFA_FMExpression { 90 class CXFA_FMBlockExpression : public CXFA_FMExpression {
90 public: 91 public:
91 CXFA_FMBlockExpression( 92 CXFA_FMBlockExpression(
92 uint32_t line, 93 uint32_t line,
93 std::vector<std::unique_ptr<CXFA_FMExpression>>&& pExpressionList); 94 std::vector<std::unique_ptr<CXFA_FMExpression>>&& pExpressionList);
94 ~CXFA_FMBlockExpression() override; 95 ~CXFA_FMBlockExpression() override;
95 96
96 void ToJavaScript(CFX_WideTextBuf& javascript) override; 97 void ToJavaScript(CFX_WideTextBuf& javascript) override;
97 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 98 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
98 99
99 private: 100 private:
100 std::vector<std::unique_ptr<CXFA_FMExpression>> m_ExpressionList; 101 std::vector<std::unique_ptr<CXFA_FMExpression>> m_ExpressionList;
101 }; 102 };
102 103
103 class CXFA_FMDoExpression : public CXFA_FMExpression { 104 class CXFA_FMDoExpression : public CXFA_FMExpression {
104 public: 105 public:
105 CXFA_FMDoExpression(uint32_t line, CXFA_FMExpression* pList); 106 CXFA_FMDoExpression(uint32_t line, std::unique_ptr<CXFA_FMExpression> pList);
106 ~CXFA_FMDoExpression() override; 107 ~CXFA_FMDoExpression() override;
107 108
108 void ToJavaScript(CFX_WideTextBuf& javascript) override; 109 void ToJavaScript(CFX_WideTextBuf& javascript) override;
109 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 110 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
110 111
111 private: 112 private:
112 std::unique_ptr<CXFA_FMExpression> m_pList; 113 std::unique_ptr<CXFA_FMExpression> m_pList;
113 }; 114 };
114 115
115 class CXFA_FMIfExpression : public CXFA_FMExpression { 116 class CXFA_FMIfExpression : public CXFA_FMExpression {
116 public: 117 public:
117 CXFA_FMIfExpression(uint32_t line, 118 CXFA_FMIfExpression(uint32_t line,
118 CXFA_FMSimpleExpression* pExpression, 119 std::unique_ptr<CXFA_FMSimpleExpression> pExpression,
119 CXFA_FMExpression* pIfExpression, 120 std::unique_ptr<CXFA_FMExpression> pIfExpression,
120 CXFA_FMExpression* pElseExpression); 121 std::unique_ptr<CXFA_FMExpression> pElseExpression);
121 ~CXFA_FMIfExpression() override; 122 ~CXFA_FMIfExpression() override;
122 123
123 void ToJavaScript(CFX_WideTextBuf& javascript) override; 124 void ToJavaScript(CFX_WideTextBuf& javascript) override;
124 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 125 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
125 126
126 private: 127 private:
127 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression; 128 std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression;
128 std::unique_ptr<CXFA_FMExpression> m_pIfExpression; 129 std::unique_ptr<CXFA_FMExpression> m_pIfExpression;
129 std::unique_ptr<CXFA_FMExpression> m_pElseExpression; 130 std::unique_ptr<CXFA_FMExpression> m_pElseExpression;
130 }; 131 };
131 132
132 class CXFA_FMLoopExpression : public CXFA_FMExpression { 133 class CXFA_FMLoopExpression : public CXFA_FMExpression {
133 public: 134 public:
134 explicit CXFA_FMLoopExpression(uint32_t line) : CXFA_FMExpression(line) {} 135 explicit CXFA_FMLoopExpression(uint32_t line) : CXFA_FMExpression(line) {}
135 ~CXFA_FMLoopExpression() override; 136 ~CXFA_FMLoopExpression() override;
136 void ToJavaScript(CFX_WideTextBuf& javascript) override; 137 void ToJavaScript(CFX_WideTextBuf& javascript) override;
137 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 138 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
138 }; 139 };
139 140
140 class CXFA_FMWhileExpression : public CXFA_FMLoopExpression { 141 class CXFA_FMWhileExpression : public CXFA_FMLoopExpression {
141 public: 142 public:
142 CXFA_FMWhileExpression(uint32_t line, 143 CXFA_FMWhileExpression(uint32_t line,
143 CXFA_FMSimpleExpression* pCodition, 144 std::unique_ptr<CXFA_FMSimpleExpression> pCodition,
144 CXFA_FMExpression* pExpression); 145 std::unique_ptr<CXFA_FMExpression> pExpression);
145 ~CXFA_FMWhileExpression() override; 146 ~CXFA_FMWhileExpression() override;
146 147
147 void ToJavaScript(CFX_WideTextBuf& javascript) override; 148 void ToJavaScript(CFX_WideTextBuf& javascript) override;
148 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 149 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
149 150
150 private: 151 private:
151 std::unique_ptr<CXFA_FMSimpleExpression> m_pCondition; 152 std::unique_ptr<CXFA_FMSimpleExpression> m_pCondition;
152 std::unique_ptr<CXFA_FMExpression> m_pExpression; 153 std::unique_ptr<CXFA_FMExpression> m_pExpression;
153 }; 154 };
154 155
(...skipping 10 matching lines...) Expand all
165 explicit CXFA_FMContinueExpression(uint32_t line); 166 explicit CXFA_FMContinueExpression(uint32_t line);
166 ~CXFA_FMContinueExpression() override; 167 ~CXFA_FMContinueExpression() override;
167 void ToJavaScript(CFX_WideTextBuf& javascript) override; 168 void ToJavaScript(CFX_WideTextBuf& javascript) override;
168 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 169 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
169 }; 170 };
170 171
171 class CXFA_FMForExpression : public CXFA_FMLoopExpression { 172 class CXFA_FMForExpression : public CXFA_FMLoopExpression {
172 public: 173 public:
173 CXFA_FMForExpression(uint32_t line, 174 CXFA_FMForExpression(uint32_t line,
174 const CFX_WideStringC& wsVariant, 175 const CFX_WideStringC& wsVariant,
175 CXFA_FMSimpleExpression* pAssignment, 176 std::unique_ptr<CXFA_FMSimpleExpression> pAssignment,
176 CXFA_FMSimpleExpression* pAccessor, 177 std::unique_ptr<CXFA_FMSimpleExpression> pAccessor,
177 int32_t iDirection, 178 int32_t iDirection,
178 CXFA_FMSimpleExpression* pStep, 179 std::unique_ptr<CXFA_FMSimpleExpression> pStep,
179 CXFA_FMExpression* pList); 180 std::unique_ptr<CXFA_FMExpression> pList);
180 ~CXFA_FMForExpression() override; 181 ~CXFA_FMForExpression() override;
181 182
182 void ToJavaScript(CFX_WideTextBuf& javascript) override; 183 void ToJavaScript(CFX_WideTextBuf& javascript) override;
183 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 184 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
184 185
185 private: 186 private:
186 CFX_WideStringC m_wsVariant; 187 CFX_WideStringC m_wsVariant;
187 std::unique_ptr<CXFA_FMSimpleExpression> m_pAssignment; 188 std::unique_ptr<CXFA_FMSimpleExpression> m_pAssignment;
188 std::unique_ptr<CXFA_FMSimpleExpression> m_pAccessor; 189 std::unique_ptr<CXFA_FMSimpleExpression> m_pAccessor;
189 int32_t m_iDirection; 190 int32_t m_iDirection;
190 std::unique_ptr<CXFA_FMSimpleExpression> m_pStep; 191 std::unique_ptr<CXFA_FMSimpleExpression> m_pStep;
191 std::unique_ptr<CXFA_FMExpression> m_pList; 192 std::unique_ptr<CXFA_FMExpression> m_pList;
192 }; 193 };
193 194
194 class CXFA_FMForeachExpression : public CXFA_FMLoopExpression { 195 class CXFA_FMForeachExpression : public CXFA_FMLoopExpression {
195 public: 196 public:
196 // Takes ownership of |pAccessors|. 197 // Takes ownership of |pAccessors|.
197 CXFA_FMForeachExpression( 198 CXFA_FMForeachExpression(
198 uint32_t line, 199 uint32_t line,
199 const CFX_WideStringC& wsIdentifier, 200 const CFX_WideStringC& wsIdentifier,
200 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>>&& pAccessors, 201 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>>&& pAccessors,
201 CXFA_FMExpression* pList); 202 std::unique_ptr<CXFA_FMExpression> pList);
202 ~CXFA_FMForeachExpression() override; 203 ~CXFA_FMForeachExpression() override;
203 204
204 void ToJavaScript(CFX_WideTextBuf& javascript) override; 205 void ToJavaScript(CFX_WideTextBuf& javascript) override;
205 void ToImpliedReturnJS(CFX_WideTextBuf&) override; 206 void ToImpliedReturnJS(CFX_WideTextBuf&) override;
206 207
207 private: 208 private:
208 CFX_WideStringC m_wsIdentifier; 209 CFX_WideStringC m_wsIdentifier;
209 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>> m_pAccessors; 210 std::vector<std::unique_ptr<CXFA_FMSimpleExpression>> m_pAccessors;
210 std::unique_ptr<CXFA_FMExpression> m_pList; 211 std::unique_ptr<CXFA_FMExpression> m_pList;
211 }; 212 };
212 213
213 #endif // XFA_FXFA_FM2JS_XFA_EXPRESSION_H_ 214 #endif // XFA_FXFA_FM2JS_XFA_EXPRESSION_H_
OLDNEW
« no previous file with comments | « no previous file | xfa/fxfa/fm2js/xfa_expression.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698