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

Side by Side Diff: xfa/fxfa/parser/xfa_script_nodehelper.cpp

Issue 2084603003: Change func(void) to func() (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: style fix Created 4 years, 6 months 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/parser/xfa_script_nodehelper.h ('k') | xfa/fxfa/parser/xfa_script_resolveprocessor.h » ('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/parser/xfa_script_nodehelper.h" 7 #include "xfa/fxfa/parser/xfa_script_nodehelper.h"
8 8
9 #include "core/fxcrt/include/fx_ext.h" 9 #include "core/fxcrt/include/fx_ext.h"
10 #include "xfa/fxfa/parser/xfa_doclayout.h" 10 #include "xfa/fxfa/parser/xfa_doclayout.h"
11 #include "xfa/fxfa/parser/xfa_document.h" 11 #include "xfa/fxfa/parser/xfa_document.h"
12 #include "xfa/fxfa/parser/xfa_localemgr.h" 12 #include "xfa/fxfa/parser/xfa_localemgr.h"
13 #include "xfa/fxfa/parser/xfa_object.h" 13 #include "xfa/fxfa/parser/xfa_object.h"
14 #include "xfa/fxfa/parser/xfa_parser.h" 14 #include "xfa/fxfa/parser/xfa_parser.h"
15 #include "xfa/fxfa/parser/xfa_script.h" 15 #include "xfa/fxfa/parser/xfa_script.h"
16 #include "xfa/fxfa/parser/xfa_script_imp.h" 16 #include "xfa/fxfa/parser/xfa_script_imp.h"
17 #include "xfa/fxfa/parser/xfa_utils.h" 17 #include "xfa/fxfa/parser/xfa_utils.h"
18 18
19 CXFA_NodeHelper::CXFA_NodeHelper(void) 19 CXFA_NodeHelper::CXFA_NodeHelper()
20 : m_eLastCreateType(XFA_ELEMENT_DataValue), 20 : m_eLastCreateType(XFA_ELEMENT_DataValue),
21 m_pCreateParent(NULL), 21 m_pCreateParent(NULL),
22 m_iCreateCount(0), 22 m_iCreateCount(0),
23 m_iCreateFlag(XFA_RESOLVENODE_RSTYPE_CreateNodeOne), 23 m_iCreateFlag(XFA_RESOLVENODE_RSTYPE_CreateNodeOne),
24 m_iCurAllStart(-1), 24 m_iCurAllStart(-1),
25 m_pAllStartParent(NULL) {} 25 m_pAllStartParent(NULL) {}
26 CXFA_NodeHelper::~CXFA_NodeHelper(void) {} 26
27 CXFA_NodeHelper::~CXFA_NodeHelper() {}
28
27 CXFA_Node* CXFA_NodeHelper::XFA_ResolveNodes_GetOneChild( 29 CXFA_Node* CXFA_NodeHelper::XFA_ResolveNodes_GetOneChild(
28 CXFA_Node* parent, 30 CXFA_Node* parent,
29 const FX_WCHAR* pwsName, 31 const FX_WCHAR* pwsName,
30 FX_BOOL bIsClassName) { 32 FX_BOOL bIsClassName) {
31 if (parent == NULL) { 33 if (parent == NULL) {
32 return NULL; 34 return NULL;
33 } 35 }
34 CXFA_NodeArray siblings; 36 CXFA_NodeArray siblings;
35 uint32_t uNameHash = FX_HashCode_GetW(CFX_WideStringC(pwsName), false); 37 uint32_t uNameHash = FX_HashCode_GetW(CFX_WideStringC(pwsName), false);
36 XFA_NodeAcc_TraverseAnySiblings(parent, uNameHash, &siblings, bIsClassName); 38 XFA_NodeAcc_TraverseAnySiblings(parent, uNameHash, &siblings, bIsClassName);
37 if (siblings.GetSize() == 0) { 39 if (siblings.GetSize() == 0) {
38 return NULL; 40 return NULL;
39 } 41 }
40 return siblings[0]; 42 return siblings[0];
41 } 43 }
44
42 int32_t CXFA_NodeHelper::XFA_CountSiblings(CXFA_Node* pNode, 45 int32_t CXFA_NodeHelper::XFA_CountSiblings(CXFA_Node* pNode,
43 XFA_LOGIC_TYPE eLogicType, 46 XFA_LOGIC_TYPE eLogicType,
44 CXFA_NodeArray* pSiblings, 47 CXFA_NodeArray* pSiblings,
45 FX_BOOL bIsClassName) { 48 FX_BOOL bIsClassName) {
46 if (!pNode) 49 if (!pNode)
47 return 0; 50 return 0;
48 CXFA_Node* parent = 51 CXFA_Node* parent =
49 XFA_ResolveNodes_GetParent(pNode, XFA_LOGIC_NoTransparent); 52 XFA_ResolveNodes_GetParent(pNode, XFA_LOGIC_NoTransparent);
50 if (!parent) 53 if (!parent)
51 return 0; 54 return 0;
52 const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement( 55 const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement(
53 parent->GetClassID(), pNode->GetClassID(), XFA_XDPPACKET_UNKNOWN); 56 parent->GetClassID(), pNode->GetClassID(), XFA_XDPPACKET_UNKNOWN);
54 if (!pProperty && eLogicType == XFA_LOGIC_Transparent) { 57 if (!pProperty && eLogicType == XFA_LOGIC_Transparent) {
55 parent = XFA_ResolveNodes_GetParent(pNode, XFA_LOGIC_Transparent); 58 parent = XFA_ResolveNodes_GetParent(pNode, XFA_LOGIC_Transparent);
56 if (parent == NULL) { 59 if (parent == NULL) {
57 return 0; 60 return 0;
58 } 61 }
59 } 62 }
60 if (bIsClassName) { 63 if (bIsClassName) {
61 return XFA_NodeAcc_TraverseSiblings(parent, pNode->GetClassHashCode(), 64 return XFA_NodeAcc_TraverseSiblings(parent, pNode->GetClassHashCode(),
62 pSiblings, eLogicType, bIsClassName); 65 pSiblings, eLogicType, bIsClassName);
63 } else { 66 } else {
64 return XFA_NodeAcc_TraverseSiblings(parent, pNode->GetNameHash(), pSiblings, 67 return XFA_NodeAcc_TraverseSiblings(parent, pNode->GetNameHash(), pSiblings,
65 eLogicType, bIsClassName); 68 eLogicType, bIsClassName);
66 } 69 }
67 } 70 }
71
68 int32_t CXFA_NodeHelper::XFA_NodeAcc_TraverseAnySiblings( 72 int32_t CXFA_NodeHelper::XFA_NodeAcc_TraverseAnySiblings(
69 CXFA_Node* parent, 73 CXFA_Node* parent,
70 uint32_t dNameHash, 74 uint32_t dNameHash,
71 CXFA_NodeArray* pSiblings, 75 CXFA_NodeArray* pSiblings,
72 FX_BOOL bIsClassName) { 76 FX_BOOL bIsClassName) {
73 if (parent == NULL || pSiblings == NULL) { 77 if (parent == NULL || pSiblings == NULL) {
74 return 0; 78 return 0;
75 } 79 }
76 int32_t nCount = 0; 80 int32_t nCount = 0;
77 int32_t i = 0; 81 int32_t i = 0;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 } 122 }
119 } 123 }
120 if (nCount > 0) { 124 if (nCount > 0) {
121 return nCount; 125 return nCount;
122 } 126 }
123 nCount += XFA_NodeAcc_TraverseAnySiblings(child, dNameHash, pSiblings, 127 nCount += XFA_NodeAcc_TraverseAnySiblings(child, dNameHash, pSiblings,
124 bIsClassName); 128 bIsClassName);
125 } 129 }
126 return nCount; 130 return nCount;
127 } 131 }
132
128 int32_t CXFA_NodeHelper::XFA_NodeAcc_TraverseSiblings(CXFA_Node* parent, 133 int32_t CXFA_NodeHelper::XFA_NodeAcc_TraverseSiblings(CXFA_Node* parent,
129 uint32_t dNameHash, 134 uint32_t dNameHash,
130 CXFA_NodeArray* pSiblings, 135 CXFA_NodeArray* pSiblings,
131 XFA_LOGIC_TYPE eLogicType, 136 XFA_LOGIC_TYPE eLogicType,
132 FX_BOOL bIsClassName, 137 FX_BOOL bIsClassName,
133 FX_BOOL bIsFindProperty) { 138 FX_BOOL bIsFindProperty) {
134 if (parent == NULL || pSiblings == NULL) { 139 if (parent == NULL || pSiblings == NULL) {
135 return 0; 140 return 0;
136 } 141 }
137 int32_t nCount = 0; 142 int32_t nCount = 0;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 continue; 198 continue;
194 } 199 }
195 if (XFA_NodeIsTransparent(child) && 200 if (XFA_NodeIsTransparent(child) &&
196 child->GetClassID() != XFA_ELEMENT_PageSet) { 201 child->GetClassID() != XFA_ELEMENT_PageSet) {
197 nCount += XFA_NodeAcc_TraverseSiblings(child, dNameHash, pSiblings, 202 nCount += XFA_NodeAcc_TraverseSiblings(child, dNameHash, pSiblings,
198 eLogicType, bIsClassName, FALSE); 203 eLogicType, bIsClassName, FALSE);
199 } 204 }
200 } 205 }
201 return nCount; 206 return nCount;
202 } 207 }
208
203 CXFA_Node* CXFA_NodeHelper::XFA_ResolveNodes_GetParent( 209 CXFA_Node* CXFA_NodeHelper::XFA_ResolveNodes_GetParent(
204 CXFA_Node* pNode, 210 CXFA_Node* pNode,
205 XFA_LOGIC_TYPE eLogicType) { 211 XFA_LOGIC_TYPE eLogicType) {
206 if (!pNode) { 212 if (!pNode) {
207 return NULL; 213 return NULL;
208 } 214 }
209 if (eLogicType == XFA_LOGIC_NoTransparent) { 215 if (eLogicType == XFA_LOGIC_NoTransparent) {
210 return pNode->GetNodeItem(XFA_NODEITEM_Parent); 216 return pNode->GetNodeItem(XFA_NODEITEM_Parent);
211 } 217 }
212 CXFA_Node* parent; 218 CXFA_Node* parent;
213 CXFA_Node* node = pNode; 219 CXFA_Node* node = pNode;
214 while (TRUE) { 220 while (TRUE) {
215 parent = XFA_ResolveNodes_GetParent(node); 221 parent = XFA_ResolveNodes_GetParent(node);
216 if (parent == NULL) { 222 if (parent == NULL) {
217 break; 223 break;
218 } 224 }
219 XFA_ELEMENT parentElement = parent->GetClassID(); 225 XFA_ELEMENT parentElement = parent->GetClassID();
220 if ((!parent->IsUnnamed() && parentElement != XFA_ELEMENT_SubformSet) || 226 if ((!parent->IsUnnamed() && parentElement != XFA_ELEMENT_SubformSet) ||
221 parentElement == XFA_ELEMENT_Variables) { 227 parentElement == XFA_ELEMENT_Variables) {
222 break; 228 break;
223 } 229 }
224 node = parent; 230 node = parent;
225 } 231 }
226 return parent; 232 return parent;
227 } 233 }
234
228 int32_t CXFA_NodeHelper::XFA_GetIndex(CXFA_Node* pNode, 235 int32_t CXFA_NodeHelper::XFA_GetIndex(CXFA_Node* pNode,
229 XFA_LOGIC_TYPE eLogicType, 236 XFA_LOGIC_TYPE eLogicType,
230 FX_BOOL bIsProperty, 237 FX_BOOL bIsProperty,
231 FX_BOOL bIsClassIndex) { 238 FX_BOOL bIsClassIndex) {
232 CXFA_Node* parent = 239 CXFA_Node* parent =
233 XFA_ResolveNodes_GetParent(pNode, XFA_LOGIC_NoTransparent); 240 XFA_ResolveNodes_GetParent(pNode, XFA_LOGIC_NoTransparent);
234 if (parent == NULL) { 241 if (parent == NULL) {
235 return 0; 242 return 0;
236 } 243 }
237 if (!bIsProperty && eLogicType == XFA_LOGIC_Transparent) { 244 if (!bIsProperty && eLogicType == XFA_LOGIC_Transparent) {
(...skipping 10 matching lines...) Expand all
248 int32_t iSize = XFA_NodeAcc_TraverseSiblings(parent, dwHashName, &siblings, 255 int32_t iSize = XFA_NodeAcc_TraverseSiblings(parent, dwHashName, &siblings,
249 eLogicType, bIsClassIndex); 256 eLogicType, bIsClassIndex);
250 for (int32_t i = 0; i < iSize; ++i) { 257 for (int32_t i = 0; i < iSize; ++i) {
251 CXFA_Node* child = siblings[i]; 258 CXFA_Node* child = siblings[i];
252 if (child == pNode) { 259 if (child == pNode) {
253 return i; 260 return i;
254 } 261 }
255 } 262 }
256 return 0; 263 return 0;
257 } 264 }
265
258 void CXFA_NodeHelper::XFA_GetNameExpression(CXFA_Node* refNode, 266 void CXFA_NodeHelper::XFA_GetNameExpression(CXFA_Node* refNode,
259 CFX_WideString& wsName, 267 CFX_WideString& wsName,
260 FX_BOOL bIsAllPath, 268 FX_BOOL bIsAllPath,
261 XFA_LOGIC_TYPE eLogicType) { 269 XFA_LOGIC_TYPE eLogicType) {
262 wsName.clear(); 270 wsName.clear();
263 if (bIsAllPath) { 271 if (bIsAllPath) {
264 XFA_GetNameExpression(refNode, wsName, FALSE, eLogicType); 272 XFA_GetNameExpression(refNode, wsName, FALSE, eLogicType);
265 CFX_WideString wsParent; 273 CFX_WideString wsParent;
266 CXFA_Node* parent = 274 CXFA_Node* parent =
267 XFA_ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent); 275 XFA_ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent);
(...skipping 29 matching lines...) Expand all
297 return FALSE; 305 return FALSE;
298 } 306 }
299 XFA_ELEMENT eRefNode = refNode->GetClassID(); 307 XFA_ELEMENT eRefNode = refNode->GetClassID();
300 if ((refNode->IsUnnamed() && refNode->IsContainerNode()) || 308 if ((refNode->IsUnnamed() && refNode->IsContainerNode()) ||
301 eRefNode == XFA_ELEMENT_SubformSet || eRefNode == XFA_ELEMENT_Area || 309 eRefNode == XFA_ELEMENT_SubformSet || eRefNode == XFA_ELEMENT_Area ||
302 eRefNode == XFA_ELEMENT_Proto) { 310 eRefNode == XFA_ELEMENT_Proto) {
303 return TRUE; 311 return TRUE;
304 } 312 }
305 return FALSE; 313 return FALSE;
306 } 314 }
315
307 FX_BOOL CXFA_NodeHelper::XFA_CreateNode_ForCondition( 316 FX_BOOL CXFA_NodeHelper::XFA_CreateNode_ForCondition(
308 CFX_WideString& wsCondition) { 317 CFX_WideString& wsCondition) {
309 int32_t iLen = wsCondition.GetLength(); 318 int32_t iLen = wsCondition.GetLength();
310 CFX_WideString wsIndex(L"0"); 319 CFX_WideString wsIndex(L"0");
311 FX_BOOL bAll = FALSE; 320 FX_BOOL bAll = FALSE;
312 if (iLen == 0) { 321 if (iLen == 0) {
313 m_iCreateFlag = XFA_RESOLVENODE_RSTYPE_CreateNodeOne; 322 m_iCreateFlag = XFA_RESOLVENODE_RSTYPE_CreateNodeOne;
314 return FALSE; 323 return FALSE;
315 } 324 }
316 if (wsCondition.GetAt(0) == '[') { 325 if (wsCondition.GetAt(0) == '[') {
(...skipping 18 matching lines...) Expand all
335 } else { 344 } else {
336 m_iCreateFlag = XFA_RESOLVENODE_RSTYPE_CreateNodeOne; 345 m_iCreateFlag = XFA_RESOLVENODE_RSTYPE_CreateNodeOne;
337 wsIndex = wsCondition.Mid(i, iLen - 1 - i); 346 wsIndex = wsCondition.Mid(i, iLen - 1 - i);
338 } 347 }
339 int32_t iIndex = wsIndex.GetInteger(); 348 int32_t iIndex = wsIndex.GetInteger();
340 m_iCreateCount = iIndex; 349 m_iCreateCount = iIndex;
341 return TRUE; 350 return TRUE;
342 } 351 }
343 return FALSE; 352 return FALSE;
344 } 353 }
354
345 FX_BOOL CXFA_NodeHelper::XFA_ResolveNodes_CreateNode( 355 FX_BOOL CXFA_NodeHelper::XFA_ResolveNodes_CreateNode(
346 CFX_WideString wsName, 356 CFX_WideString wsName,
347 CFX_WideString wsCondition, 357 CFX_WideString wsCondition,
348 FX_BOOL bLastNode, 358 FX_BOOL bLastNode,
349 CXFA_ScriptContext* pScriptContext) { 359 CXFA_ScriptContext* pScriptContext) {
350 if (m_pCreateParent == NULL) { 360 if (m_pCreateParent == NULL) {
351 return FALSE; 361 return FALSE;
352 } 362 }
353 FX_BOOL bIsClassName = FALSE; 363 FX_BOOL bIsClassName = FALSE;
354 FX_BOOL bResult = FALSE; 364 FX_BOOL bResult = FALSE;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 } 406 }
397 bResult = TRUE; 407 bResult = TRUE;
398 } 408 }
399 } 409 }
400 } 410 }
401 if (!bResult) { 411 if (!bResult) {
402 m_pCreateParent = NULL; 412 m_pCreateParent = NULL;
403 } 413 }
404 return bResult; 414 return bResult;
405 } 415 }
416
406 void CXFA_NodeHelper::XFA_SetCreateNodeType(CXFA_Node* refNode) { 417 void CXFA_NodeHelper::XFA_SetCreateNodeType(CXFA_Node* refNode) {
407 if (refNode == NULL) { 418 if (refNode == NULL) {
408 return; 419 return;
409 } 420 }
410 if (refNode->GetClassID() == XFA_ELEMENT_Subform) { 421 if (refNode->GetClassID() == XFA_ELEMENT_Subform) {
411 m_eLastCreateType = XFA_ELEMENT_DataGroup; 422 m_eLastCreateType = XFA_ELEMENT_DataGroup;
412 } else if (refNode->GetClassID() == XFA_ELEMENT_Field) { 423 } else if (refNode->GetClassID() == XFA_ELEMENT_Field) {
413 m_eLastCreateType = XFA_FieldIsMultiListBox(refNode) 424 m_eLastCreateType = XFA_FieldIsMultiListBox(refNode)
414 ? XFA_ELEMENT_DataGroup 425 ? XFA_ELEMENT_DataGroup
415 : XFA_ELEMENT_DataValue; 426 : XFA_ELEMENT_DataValue;
416 } else if (refNode->GetClassID() == XFA_ELEMENT_ExclGroup) { 427 } else if (refNode->GetClassID() == XFA_ELEMENT_ExclGroup) {
417 m_eLastCreateType = XFA_ELEMENT_DataValue; 428 m_eLastCreateType = XFA_ELEMENT_DataValue;
418 } 429 }
419 } 430 }
431
420 FX_BOOL CXFA_NodeHelper::XFA_NodeIsProperty(CXFA_Node* refNode) { 432 FX_BOOL CXFA_NodeHelper::XFA_NodeIsProperty(CXFA_Node* refNode) {
421 CXFA_Node* parent = 433 CXFA_Node* parent =
422 XFA_ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent); 434 XFA_ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent);
423 return parent && refNode && 435 return parent && refNode &&
424 XFA_GetPropertyOfElement(parent->GetClassID(), refNode->GetClassID(), 436 XFA_GetPropertyOfElement(parent->GetClassID(), refNode->GetClassID(),
425 XFA_XDPPACKET_UNKNOWN); 437 XFA_XDPPACKET_UNKNOWN);
426 } 438 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/xfa_script_nodehelper.h ('k') | xfa/fxfa/parser/xfa_script_resolveprocessor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698