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

Side by Side Diff: xfa/src/fxfa/src/parser/xfa_script_imp.cpp

Issue 1668003003: Call CXFA_Object::ToNode() rather than C-style casting. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 4 years, 10 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
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/src/foxitlib.h" 7 #include "xfa/src/foxitlib.h"
8 #include "xfa/src/fxfa/src/common/xfa_utils.h" 8 #include "xfa/src/fxfa/src/common/xfa_utils.h"
9 #include "xfa/src/fxfa/src/common/xfa_object.h" 9 #include "xfa/src/fxfa/src/common/xfa_object.h"
10 #include "xfa/src/fxfa/src/common/xfa_document.h" 10 #include "xfa/src/fxfa/src/common/xfa_document.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL); 110 (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL);
111 CXFA_Document* pDoc = lpOrginalNode->GetDocument(); 111 CXFA_Document* pDoc = lpOrginalNode->GetDocument();
112 CXFA_ScriptContext* lpScriptContext = 112 CXFA_ScriptContext* lpScriptContext =
113 (CXFA_ScriptContext*)pDoc->GetScriptContext(); 113 (CXFA_ScriptContext*)pDoc->GetScriptContext();
114 CXFA_Object* lpCurNode = lpScriptContext->GetVariablesThis(lpOrginalNode); 114 CXFA_Object* lpCurNode = lpScriptContext->GetVariablesThis(lpOrginalNode);
115 CFX_WideString wsPropName = CFX_WideString::FromUTF8( 115 CFX_WideString wsPropName = CFX_WideString::FromUTF8(
116 (const FX_CHAR*)szPropName.GetPtr(), szPropName.GetLength()); 116 (const FX_CHAR*)szPropName.GetPtr(), szPropName.GetLength());
117 FX_DWORD dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings | 117 FX_DWORD dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings |
118 XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties | 118 XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
119 XFA_RESOLVENODE_Attributes; 119 XFA_RESOLVENODE_Attributes;
120 CXFA_Node* pRefNode = (CXFA_Node*)lpScriptContext->GetThisObject(); 120 CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject());
121 if (lpOrginalNode->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) { 121 if (lpOrginalNode->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) {
122 pRefNode = (CXFA_Node*)lpCurNode; 122 pRefNode = ToNode(lpCurNode);
123 } 123 }
124 if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName, hValue, dwFlag, 124 if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName, hValue, dwFlag,
125 TRUE)) { 125 TRUE)) {
126 return; 126 return;
127 } 127 }
128 if (lpOrginalNode->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) { 128 if (lpOrginalNode->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) {
129 if (FXJSE_Value_IsUndefined(hValue)) { 129 if (FXJSE_Value_IsUndefined(hValue)) {
130 FXJSE_Value_SetObjectOwnProp(hObject, szPropName, hValue); 130 FXJSE_Value_SetObjectOwnProp(hObject, szPropName, hValue);
131 return; 131 return;
132 } 132 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 CXFA_Object* pObject = 183 CXFA_Object* pObject =
184 lpScriptContext->GetDocument()->GetXFAObject(uHashCode); 184 lpScriptContext->GetDocument()->GetXFAObject(uHashCode);
185 if (pObject) { 185 if (pObject) {
186 FXJSE_Value_Set(hValue, lpScriptContext->GetJSValueFromMap(pObject)); 186 FXJSE_Value_Set(hValue, lpScriptContext->GetJSValueFromMap(pObject));
187 return; 187 return;
188 } 188 }
189 } 189 }
190 } 190 }
191 FX_DWORD dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties | 191 FX_DWORD dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
192 XFA_RESOLVENODE_Attributes; 192 XFA_RESOLVENODE_Attributes;
193 CXFA_Node* pRefNode = (CXFA_Node*)lpScriptContext->GetThisObject(); 193 CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject());
194 if (pOrginalObject->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) { 194 if (pOrginalObject->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) {
195 pRefNode = (CXFA_Node*)lpCurNode; 195 pRefNode = ToNode(lpCurNode);
196 } 196 }
197 if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName, hValue, dwFlag, 197 if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName, hValue, dwFlag,
198 FALSE)) { 198 FALSE)) {
199 return; 199 return;
200 } 200 }
201 dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings; 201 dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings;
202 if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName, hValue, dwFlag, 202 if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName, hValue, dwFlag,
203 FALSE)) { 203 FALSE)) {
204 return; 204 return;
205 } 205 }
206 CXFA_Object* pScriptObject = 206 CXFA_Object* pScriptObject =
207 lpScriptContext->GetVariablesThis(pOrginalObject, TRUE); 207 lpScriptContext->GetVariablesThis(pOrginalObject, TRUE);
208 if (pScriptObject && 208 if (pScriptObject &&
209 lpScriptContext->QueryVariableHValue((CXFA_Node*)pScriptObject, 209 lpScriptContext->QueryVariableHValue(pScriptObject->AsNode(), szPropName,
210 szPropName, hValue, TRUE)) { 210 hValue, TRUE)) {
211 return; 211 return;
212 } 212 }
213 IXFA_Notify* pNotify = pDoc->GetNotify(); 213 IXFA_Notify* pNotify = pDoc->GetNotify();
214 if (!pNotify) { 214 if (!pNotify) {
215 return; 215 return;
216 } 216 }
217 pNotify->GetDocProvider()->GetGlobalProperty(pNotify->GetHDOC(), szPropName, 217 pNotify->GetDocProvider()->GetGlobalProperty(pNotify->GetHDOC(), szPropName,
218 hValue); 218 hValue);
219 } 219 }
220 void CXFA_ScriptContext::NormalPropertyGetter(FXJSE_HOBJECT hObject, 220 void CXFA_ScriptContext::NormalPropertyGetter(FXJSE_HOBJECT hObject,
(...skipping 11 matching lines...) Expand all
232 (CXFA_ScriptContext*)pOrginalObject->GetDocument()->GetScriptContext(); 232 (CXFA_ScriptContext*)pOrginalObject->GetDocument()->GetScriptContext();
233 CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOrginalObject); 233 CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOrginalObject);
234 if (wsPropName == FX_WSTRC(L"xfa")) { 234 if (wsPropName == FX_WSTRC(L"xfa")) {
235 FXJSE_HVALUE pValue = lpScriptContext->GetJSValueFromMap( 235 FXJSE_HVALUE pValue = lpScriptContext->GetJSValueFromMap(
236 lpScriptContext->GetDocument()->GetRoot()); 236 lpScriptContext->GetDocument()->GetRoot());
237 FXJSE_Value_Set(hValue, pValue); 237 FXJSE_Value_Set(hValue, pValue);
238 return; 238 return;
239 } 239 }
240 FX_DWORD dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties | 240 FX_DWORD dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
241 XFA_RESOLVENODE_Attributes; 241 XFA_RESOLVENODE_Attributes;
242 FX_BOOL bRet = lpScriptContext->QueryNodeByFlag( 242 FX_BOOL bRet = lpScriptContext->QueryNodeByFlag(ToNode(pObject), wsPropName,
243 (CXFA_Node*)pObject, wsPropName, hValue, dwFlag, FALSE); 243 hValue, dwFlag, FALSE);
244 if (bRet) { 244 if (bRet) {
245 return; 245 return;
246 } 246 }
247 if (pObject == lpScriptContext->GetThisObject() || 247 if (pObject == lpScriptContext->GetThisObject() ||
248 (lpScriptContext->GetType() == XFA_SCRIPTLANGTYPE_Javascript && 248 (lpScriptContext->GetType() == XFA_SCRIPTLANGTYPE_Javascript &&
249 !lpScriptContext->IsStrictScopeInJavaScript())) { 249 !lpScriptContext->IsStrictScopeInJavaScript())) {
250 dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings; 250 dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings;
251 bRet = lpScriptContext->QueryNodeByFlag((CXFA_Node*)pObject, wsPropName, 251 bRet = lpScriptContext->QueryNodeByFlag(ToNode(pObject), wsPropName, hValue,
252 hValue, dwFlag, FALSE); 252 dwFlag, FALSE);
253 } 253 }
254 if (bRet) { 254 if (bRet) {
255 return; 255 return;
256 } 256 }
257 CXFA_Object* pScriptObject = 257 CXFA_Object* pScriptObject =
258 lpScriptContext->GetVariablesThis(pOrginalObject, TRUE); 258 lpScriptContext->GetVariablesThis(pOrginalObject, TRUE);
259 if (pScriptObject) { 259 if (pScriptObject) {
260 bRet = lpScriptContext->QueryVariableHValue((CXFA_Node*)pScriptObject, 260 bRet = lpScriptContext->QueryVariableHValue(ToNode(pScriptObject),
261 szPropName, hValue, TRUE); 261 szPropName, hValue, TRUE);
262 } 262 }
263 if (!bRet) { 263 if (!bRet) {
264 FXJSE_Value_SetUndefined(hValue); 264 FXJSE_Value_SetUndefined(hValue);
265 } 265 }
266 } 266 }
267 void CXFA_ScriptContext::NormalPropertySetter(FXJSE_HOBJECT hObject, 267 void CXFA_ScriptContext::NormalPropertySetter(FXJSE_HOBJECT hObject,
268 const CFX_ByteStringC& szPropName, 268 const CFX_ByteStringC& szPropName,
269 FXJSE_HVALUE hValue) { 269 FXJSE_HVALUE hValue) {
270 CXFA_Object* pOrginalObject = 270 CXFA_Object* pOrginalObject =
271 (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL); 271 (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL);
272 if (pOrginalObject == NULL) { 272 if (pOrginalObject == NULL) {
273 return; 273 return;
274 } 274 }
275 CXFA_ScriptContext* lpScriptContext = 275 CXFA_ScriptContext* lpScriptContext =
276 (CXFA_ScriptContext*)pOrginalObject->GetDocument()->GetScriptContext(); 276 (CXFA_ScriptContext*)pOrginalObject->GetDocument()->GetScriptContext();
277 CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOrginalObject); 277 CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOrginalObject);
278 CFX_WideString wsPropName = CFX_WideString::FromUTF8( 278 CFX_WideString wsPropName = CFX_WideString::FromUTF8(
279 (const FX_CHAR*)szPropName.GetPtr(), szPropName.GetLength()); 279 (const FX_CHAR*)szPropName.GetPtr(), szPropName.GetLength());
280 XFA_LPCSCRIPTATTRIBUTEINFO lpAttributeInfo = 280 XFA_LPCSCRIPTATTRIBUTEINFO lpAttributeInfo =
281 XFA_GetScriptAttributeByName(pObject->GetClassID(), wsPropName); 281 XFA_GetScriptAttributeByName(pObject->GetClassID(), wsPropName);
282 if (lpAttributeInfo) { 282 if (lpAttributeInfo) {
283 (pObject->*(lpAttributeInfo->lpfnCallback))( 283 (pObject->*(lpAttributeInfo->lpfnCallback))(
284 hValue, TRUE, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute); 284 hValue, TRUE, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute);
285 } else { 285 } else {
286 if (pObject->IsNode()) { 286 if (pObject->IsNode()) {
287 if (wsPropName.GetAt(0) == '#') { 287 if (wsPropName.GetAt(0) == '#') {
288 wsPropName = wsPropName.Right(wsPropName.GetLength() - 1); 288 wsPropName = wsPropName.Right(wsPropName.GetLength() - 1);
289 } 289 }
290 CXFA_Node* pNode = (CXFA_Node*)pObject; 290 CXFA_Node* pNode = ToNode(pObject);
291 CXFA_Node* pPropOrChild = NULL; 291 CXFA_Node* pPropOrChild = NULL;
292 XFA_LPCELEMENTINFO lpElementInfo = XFA_GetElementByName(wsPropName); 292 XFA_LPCELEMENTINFO lpElementInfo = XFA_GetElementByName(wsPropName);
293 if (lpElementInfo) { 293 if (lpElementInfo) {
294 pPropOrChild = pNode->GetProperty(0, lpElementInfo->eName); 294 pPropOrChild = pNode->GetProperty(0, lpElementInfo->eName);
295 } else { 295 } else {
296 pPropOrChild = pNode->GetFirstChildByName(wsPropName); 296 pPropOrChild = pNode->GetFirstChildByName(wsPropName);
297 } 297 }
298 if (pPropOrChild) { 298 if (pPropOrChild) {
299 CFX_WideString wsDefaultName = FX_WSTRC(L"{default}"); 299 CFX_WideString wsDefaultName = FX_WSTRC(L"{default}");
300 XFA_LPCSCRIPTATTRIBUTEINFO lpAttributeInfo = 300 XFA_LPCSCRIPTATTRIBUTEINFO lpAttributeInfo =
301 XFA_GetScriptAttributeByName(pPropOrChild->GetClassID(), 301 XFA_GetScriptAttributeByName(pPropOrChild->GetClassID(),
302 wsDefaultName); 302 wsDefaultName);
303 if (lpAttributeInfo) { 303 if (lpAttributeInfo) {
304 (pPropOrChild->*(lpAttributeInfo->lpfnCallback))( 304 (pPropOrChild->*(lpAttributeInfo->lpfnCallback))(
305 hValue, TRUE, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute); 305 hValue, TRUE, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute);
306 return; 306 return;
307 } 307 }
308 } 308 }
309 } 309 }
310 CXFA_Object* pScriptObject = 310 CXFA_Object* pScriptObject =
311 lpScriptContext->GetVariablesThis(pOrginalObject, TRUE); 311 lpScriptContext->GetVariablesThis(pOrginalObject, TRUE);
312 if (pScriptObject) { 312 if (pScriptObject) {
313 lpScriptContext->QueryVariableHValue((CXFA_Node*)pScriptObject, 313 lpScriptContext->QueryVariableHValue(ToNode(pScriptObject), szPropName,
314 szPropName, hValue, FALSE); 314 hValue, FALSE);
315 } 315 }
316 } 316 }
317 } 317 }
318 int32_t CXFA_ScriptContext::NormalPropTypeGetter( 318 int32_t CXFA_ScriptContext::NormalPropTypeGetter(
319 FXJSE_HOBJECT hObject, 319 FXJSE_HOBJECT hObject,
320 const CFX_ByteStringC& szPropName, 320 const CFX_ByteStringC& szPropName,
321 FX_BOOL bQueryIn) { 321 FX_BOOL bQueryIn) {
322 CXFA_Object* pObject = (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL); 322 CXFA_Object* pObject = (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL);
323 if (pObject == NULL) { 323 if (pObject == NULL) {
324 return FXJSE_ClassPropType_None; 324 return FXJSE_ClassPropType_None;
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 XFA_RESOLVENODE_RS& resolveNodeRS, 562 XFA_RESOLVENODE_RS& resolveNodeRS,
563 FX_DWORD dwStyles, 563 FX_DWORD dwStyles,
564 CXFA_Node* bindNode) { 564 CXFA_Node* bindNode) {
565 if (wsExpression.IsEmpty()) { 565 if (wsExpression.IsEmpty()) {
566 return 0; 566 return 0;
567 } 567 }
568 if (m_eScriptType != XFA_SCRIPTLANGTYPE_Formcalc || 568 if (m_eScriptType != XFA_SCRIPTLANGTYPE_Formcalc ||
569 (dwStyles & (XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings))) { 569 (dwStyles & (XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings))) {
570 m_upObjectArray.RemoveAll(); 570 m_upObjectArray.RemoveAll();
571 } 571 }
572 if (refNode && 572 if (refNode && refNode->IsNode() &&
573 (dwStyles & (XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings)) && 573 (dwStyles & (XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings))) {
574 refNode->IsNode()) { 574 m_upObjectArray.Add(refNode->AsNode());
575 m_upObjectArray.Add((CXFA_Node*)refNode);
576 } 575 }
577 FX_BOOL bNextCreate = FALSE; 576 FX_BOOL bNextCreate = FALSE;
578 if (dwStyles & XFA_RESOLVENODE_CreateNode) { 577 if (dwStyles & XFA_RESOLVENODE_CreateNode) {
579 m_pResolveProcessor->GetNodeHelper()->XFA_SetCreateNodeType(bindNode); 578 m_pResolveProcessor->GetNodeHelper()->XFA_SetCreateNodeType(bindNode);
580 } 579 }
581 m_pResolveProcessor->GetNodeHelper()->m_pCreateParent = NULL; 580 m_pResolveProcessor->GetNodeHelper()->m_pCreateParent = NULL;
582 m_pResolveProcessor->GetNodeHelper()->m_iCurAllStart = -1; 581 m_pResolveProcessor->GetNodeHelper()->m_iCurAllStart = -1;
583 CXFA_ResolveNodesData rndFind; 582 CXFA_ResolveNodesData rndFind;
584 int32_t nStart = 0; 583 int32_t nStart = 0;
585 int32_t nLevel = 0; 584 int32_t nLevel = 0;
(...skipping 18 matching lines...) Expand all
604 CXFA_Node* pDataNode = NULL; 603 CXFA_Node* pDataNode = NULL;
605 nStart = m_pResolveProcessor->GetNodeHelper()->m_iCurAllStart; 604 nStart = m_pResolveProcessor->GetNodeHelper()->m_iCurAllStart;
606 if (nStart != -1) { 605 if (nStart != -1) {
607 pDataNode = m_pDocument->GetNotBindNode(findNodes); 606 pDataNode = m_pDocument->GetNotBindNode(findNodes);
608 if (pDataNode) { 607 if (pDataNode) {
609 findNodes.RemoveAll(); 608 findNodes.RemoveAll();
610 findNodes.Add(pDataNode); 609 findNodes.Add(pDataNode);
611 break; 610 break;
612 } 611 }
613 } else { 612 } else {
614 pDataNode = (CXFA_Node*)findNodes[0]; 613 pDataNode = findNodes[0]->AsNode();
615 findNodes.RemoveAll(); 614 findNodes.RemoveAll();
616 findNodes.Add(pDataNode); 615 findNodes.Add(pDataNode);
617 break; 616 break;
618 } 617 }
619 dwStyles |= XFA_RESOLVENODE_Bind; 618 dwStyles |= XFA_RESOLVENODE_Bind;
620 findNodes.RemoveAll(); 619 findNodes.RemoveAll();
621 findNodes.Add(m_pResolveProcessor->GetNodeHelper()->m_pAllStartParent); 620 findNodes.Add(m_pResolveProcessor->GetNodeHelper()->m_pAllStartParent);
622 continue; 621 continue;
623 } else { 622 } else {
624 break; 623 break;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 break; 674 break;
676 } 675 }
677 } 676 }
678 findNodes.RemoveAll(); 677 findNodes.RemoveAll();
679 nNodes = retNodes.GetSize(); 678 nNodes = retNodes.GetSize();
680 if (nNodes < 1) { 679 if (nNodes < 1) {
681 if (dwStyles & XFA_RESOLVENODE_CreateNode) { 680 if (dwStyles & XFA_RESOLVENODE_CreateNode) {
682 bNextCreate = TRUE; 681 bNextCreate = TRUE;
683 if (m_pResolveProcessor->GetNodeHelper()->m_pCreateParent == NULL) { 682 if (m_pResolveProcessor->GetNodeHelper()->m_pCreateParent == NULL) {
684 m_pResolveProcessor->GetNodeHelper()->m_pCreateParent = 683 m_pResolveProcessor->GetNodeHelper()->m_pCreateParent =
685 (CXFA_Node*)rndFind.m_CurNode; 684 ToNode(rndFind.m_CurNode);
686 m_pResolveProcessor->GetNodeHelper()->m_iCreateCount = 1; 685 m_pResolveProcessor->GetNodeHelper()->m_iCreateCount = 1;
687 } 686 }
688 FX_BOOL bCreate = 687 FX_BOOL bCreate =
689 m_pResolveProcessor->GetNodeHelper()->XFA_ResolveNodes_CreateNode( 688 m_pResolveProcessor->GetNodeHelper()->XFA_ResolveNodes_CreateNode(
690 rndFind.m_wsName, rndFind.m_wsCondition, 689 rndFind.m_wsName, rndFind.m_wsCondition,
691 nStart == wsExpression.GetLength(), this); 690 nStart == wsExpression.GetLength(), this);
692 if (bCreate) { 691 if (bCreate) {
693 continue; 692 continue;
694 } else { 693 } else {
695 break; 694 break;
(...skipping 28 matching lines...) Expand all
724 } 723 }
725 return resolveNodeRS.nodes.GetSize(); 724 return resolveNodeRS.nodes.GetSize();
726 } 725 }
727 return nNodes; 726 return nNodes;
728 } 727 }
729 FXJSE_HVALUE CXFA_ScriptContext::GetJSValueFromMap(CXFA_Object* pObject) { 728 FXJSE_HVALUE CXFA_ScriptContext::GetJSValueFromMap(CXFA_Object* pObject) {
730 if (!pObject) { 729 if (!pObject) {
731 return NULL; 730 return NULL;
732 } 731 }
733 if (pObject->IsNode()) { 732 if (pObject->IsNode()) {
734 RunVariablesScript((CXFA_Node*)pObject); 733 RunVariablesScript(pObject->AsNode());
735 } 734 }
736 void* pValue = m_mapXFAToHValue.GetValueAt(pObject); 735 void* pValue = m_mapXFAToHValue.GetValueAt(pObject);
737 if (pValue == NULL) { 736 if (pValue == NULL) {
738 FXJSE_HVALUE jsHvalue = FXJSE_Value_Create(m_hJsRuntime); 737 FXJSE_HVALUE jsHvalue = FXJSE_Value_Create(m_hJsRuntime);
739 FXJSE_Value_SetObject(jsHvalue, pObject, m_hJsClass); 738 FXJSE_Value_SetObject(jsHvalue, pObject, m_hJsClass);
740 m_mapXFAToHValue.SetAt(pObject, jsHvalue); 739 m_mapXFAToHValue.SetAt(pObject, jsHvalue);
741 pValue = jsHvalue; 740 pValue = jsHvalue;
742 } 741 }
743 return (FXJSE_HVALUE)pValue; 742 return (FXJSE_HVALUE)pValue;
744 } 743 }
(...skipping 30 matching lines...) Expand all
775 if (!m_pScriptNodeArray) { 774 if (!m_pScriptNodeArray) {
776 return; 775 return;
777 } 776 }
778 if (m_pScriptNodeArray->Find(pNode) == -1) { 777 if (m_pScriptNodeArray->Find(pNode) == -1) {
779 m_pScriptNodeArray->Add(pNode); 778 m_pScriptNodeArray->Add(pNode);
780 } 779 }
781 } 780 }
782 IXFA_ScriptContext* XFA_ScriptContext_Create(CXFA_Document* pDocument) { 781 IXFA_ScriptContext* XFA_ScriptContext_Create(CXFA_Document* pDocument) {
783 return new CXFA_ScriptContext(pDocument); 782 return new CXFA_ScriptContext(pDocument);
784 } 783 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698