| OLD | NEW |
| 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_imp.h" | 7 #include "xfa/fxfa/parser/xfa_script_imp.h" |
| 8 | 8 |
| 9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
| 10 #include "xfa/fxfa/app/xfa_ffnotify.h" | 10 #include "xfa/fxfa/app/xfa_ffnotify.h" |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 FXJSE_HVALUE pValue = pThisObject ? GetJSValueFromMap(pThisObject) : NULL; | 94 FXJSE_HVALUE pValue = pThisObject ? GetJSValueFromMap(pThisObject) : NULL; |
| 95 FX_BOOL bRet = | 95 FX_BOOL bRet = |
| 96 FXJSE_ExecuteScript(m_hJsContext, btScript.c_str(), hRetValue, pValue); | 96 FXJSE_ExecuteScript(m_hJsContext, btScript.c_str(), hRetValue, pValue); |
| 97 m_pThisObject = pOriginalObject; | 97 m_pThisObject = pOriginalObject; |
| 98 m_eScriptType = eSaveType; | 98 m_eScriptType = eSaveType; |
| 99 return bRet; | 99 return bRet; |
| 100 } | 100 } |
| 101 void CXFA_ScriptContext::GlobalPropertySetter(FXJSE_HOBJECT hObject, | 101 void CXFA_ScriptContext::GlobalPropertySetter(FXJSE_HOBJECT hObject, |
| 102 const CFX_ByteStringC& szPropName, | 102 const CFX_ByteStringC& szPropName, |
| 103 FXJSE_HVALUE hValue) { | 103 FXJSE_HVALUE hValue) { |
| 104 CXFA_Object* lpOrginalNode = (CXFA_Object*)FXJSE_Value_ToObject(hObject); | 104 CXFA_Object* lpOrginalNode = |
| 105 (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL); |
| 105 CXFA_Document* pDoc = lpOrginalNode->GetDocument(); | 106 CXFA_Document* pDoc = lpOrginalNode->GetDocument(); |
| 106 CXFA_ScriptContext* lpScriptContext = | 107 CXFA_ScriptContext* lpScriptContext = |
| 107 (CXFA_ScriptContext*)pDoc->GetScriptContext(); | 108 (CXFA_ScriptContext*)pDoc->GetScriptContext(); |
| 108 CXFA_Object* lpCurNode = lpScriptContext->GetVariablesThis(lpOrginalNode); | 109 CXFA_Object* lpCurNode = lpScriptContext->GetVariablesThis(lpOrginalNode); |
| 109 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); | 110 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); |
| 110 uint32_t dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings | | 111 uint32_t dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings | |
| 111 XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties | | 112 XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties | |
| 112 XFA_RESOLVENODE_Attributes; | 113 XFA_RESOLVENODE_Attributes; |
| 113 CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject()); | 114 CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject()); |
| 114 if (lpOrginalNode->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) { | 115 if (lpOrginalNode->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) { |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 if (lpAttributeInfo) { | 152 if (lpAttributeInfo) { |
| 152 (resolveRs.nodes[0]->*(lpAttributeInfo->lpfnCallback))( | 153 (resolveRs.nodes[0]->*(lpAttributeInfo->lpfnCallback))( |
| 153 hValue, bSetting, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute); | 154 hValue, bSetting, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute); |
| 154 } | 155 } |
| 155 } | 156 } |
| 156 return true; | 157 return true; |
| 157 } | 158 } |
| 158 void CXFA_ScriptContext::GlobalPropertyGetter(FXJSE_HOBJECT hObject, | 159 void CXFA_ScriptContext::GlobalPropertyGetter(FXJSE_HOBJECT hObject, |
| 159 const CFX_ByteStringC& szPropName, | 160 const CFX_ByteStringC& szPropName, |
| 160 FXJSE_HVALUE hValue) { | 161 FXJSE_HVALUE hValue) { |
| 161 CXFA_Object* pOrginalObject = (CXFA_Object*)FXJSE_Value_ToObject(hObject); | 162 CXFA_Object* pOrginalObject = |
| 163 (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL); |
| 162 CXFA_Document* pDoc = pOrginalObject->GetDocument(); | 164 CXFA_Document* pDoc = pOrginalObject->GetDocument(); |
| 163 CXFA_ScriptContext* lpScriptContext = | 165 CXFA_ScriptContext* lpScriptContext = |
| 164 (CXFA_ScriptContext*)pDoc->GetScriptContext(); | 166 (CXFA_ScriptContext*)pDoc->GetScriptContext(); |
| 165 CXFA_Object* lpCurNode = lpScriptContext->GetVariablesThis(pOrginalObject); | 167 CXFA_Object* lpCurNode = lpScriptContext->GetVariablesThis(pOrginalObject); |
| 166 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); | 168 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); |
| 167 if (lpScriptContext->GetType() == XFA_SCRIPTLANGTYPE_Formcalc) { | 169 if (lpScriptContext->GetType() == XFA_SCRIPTLANGTYPE_Formcalc) { |
| 168 if (szPropName == FOXIT_XFA_FM2JS_FORMCALC_RUNTIME) { | 170 if (szPropName == FOXIT_XFA_FM2JS_FORMCALC_RUNTIME) { |
| 169 XFA_FM2JS_GlobalPropertyGetter(lpScriptContext->m_hFM2JSContext, hValue); | 171 XFA_FM2JS_GlobalPropertyGetter(lpScriptContext->m_hFM2JSContext, hValue); |
| 170 return; | 172 return; |
| 171 } | 173 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 CXFA_FFNotify* pNotify = pDoc->GetNotify(); | 207 CXFA_FFNotify* pNotify = pDoc->GetNotify(); |
| 206 if (!pNotify) { | 208 if (!pNotify) { |
| 207 return; | 209 return; |
| 208 } | 210 } |
| 209 pNotify->GetDocProvider()->GetGlobalProperty(pNotify->GetHDOC(), szPropName, | 211 pNotify->GetDocProvider()->GetGlobalProperty(pNotify->GetHDOC(), szPropName, |
| 210 hValue); | 212 hValue); |
| 211 } | 213 } |
| 212 void CXFA_ScriptContext::NormalPropertyGetter(FXJSE_HOBJECT hObject, | 214 void CXFA_ScriptContext::NormalPropertyGetter(FXJSE_HOBJECT hObject, |
| 213 const CFX_ByteStringC& szPropName, | 215 const CFX_ByteStringC& szPropName, |
| 214 FXJSE_HVALUE hValue) { | 216 FXJSE_HVALUE hValue) { |
| 215 CXFA_Object* pOrginalObject = (CXFA_Object*)FXJSE_Value_ToObject(hObject); | 217 CXFA_Object* pOrginalObject = |
| 218 (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL); |
| 216 if (pOrginalObject == NULL) { | 219 if (pOrginalObject == NULL) { |
| 217 FXJSE_Value_SetUndefined(hValue); | 220 FXJSE_Value_SetUndefined(hValue); |
| 218 return; | 221 return; |
| 219 } | 222 } |
| 220 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); | 223 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); |
| 221 CXFA_ScriptContext* lpScriptContext = | 224 CXFA_ScriptContext* lpScriptContext = |
| 222 (CXFA_ScriptContext*)pOrginalObject->GetDocument()->GetScriptContext(); | 225 (CXFA_ScriptContext*)pOrginalObject->GetDocument()->GetScriptContext(); |
| 223 CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOrginalObject); | 226 CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOrginalObject); |
| 224 if (wsPropName == FX_WSTRC(L"xfa")) { | 227 if (wsPropName == FX_WSTRC(L"xfa")) { |
| 225 FXJSE_HVALUE pValue = lpScriptContext->GetJSValueFromMap( | 228 FXJSE_HVALUE pValue = lpScriptContext->GetJSValueFromMap( |
| (...skipping 24 matching lines...) Expand all Loading... |
| 250 bRet = lpScriptContext->QueryVariableHValue(ToNode(pScriptObject), | 253 bRet = lpScriptContext->QueryVariableHValue(ToNode(pScriptObject), |
| 251 szPropName, hValue, TRUE); | 254 szPropName, hValue, TRUE); |
| 252 } | 255 } |
| 253 if (!bRet) { | 256 if (!bRet) { |
| 254 FXJSE_Value_SetUndefined(hValue); | 257 FXJSE_Value_SetUndefined(hValue); |
| 255 } | 258 } |
| 256 } | 259 } |
| 257 void CXFA_ScriptContext::NormalPropertySetter(FXJSE_HOBJECT hObject, | 260 void CXFA_ScriptContext::NormalPropertySetter(FXJSE_HOBJECT hObject, |
| 258 const CFX_ByteStringC& szPropName, | 261 const CFX_ByteStringC& szPropName, |
| 259 FXJSE_HVALUE hValue) { | 262 FXJSE_HVALUE hValue) { |
| 260 CXFA_Object* pOrginalObject = (CXFA_Object*)FXJSE_Value_ToObject(hObject); | 263 CXFA_Object* pOrginalObject = |
| 264 (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL); |
| 261 if (pOrginalObject == NULL) { | 265 if (pOrginalObject == NULL) { |
| 262 return; | 266 return; |
| 263 } | 267 } |
| 264 CXFA_ScriptContext* lpScriptContext = | 268 CXFA_ScriptContext* lpScriptContext = |
| 265 (CXFA_ScriptContext*)pOrginalObject->GetDocument()->GetScriptContext(); | 269 (CXFA_ScriptContext*)pOrginalObject->GetDocument()->GetScriptContext(); |
| 266 CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOrginalObject); | 270 CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOrginalObject); |
| 267 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); | 271 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); |
| 268 const XFA_SCRIPTATTRIBUTEINFO* lpAttributeInfo = XFA_GetScriptAttributeByName( | 272 const XFA_SCRIPTATTRIBUTEINFO* lpAttributeInfo = XFA_GetScriptAttributeByName( |
| 269 pObject->GetClassID(), wsPropName.AsStringC()); | 273 pObject->GetClassID(), wsPropName.AsStringC()); |
| 270 if (lpAttributeInfo) { | 274 if (lpAttributeInfo) { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 301 if (pScriptObject) { | 305 if (pScriptObject) { |
| 302 lpScriptContext->QueryVariableHValue(ToNode(pScriptObject), szPropName, | 306 lpScriptContext->QueryVariableHValue(ToNode(pScriptObject), szPropName, |
| 303 hValue, FALSE); | 307 hValue, FALSE); |
| 304 } | 308 } |
| 305 } | 309 } |
| 306 } | 310 } |
| 307 int32_t CXFA_ScriptContext::NormalPropTypeGetter( | 311 int32_t CXFA_ScriptContext::NormalPropTypeGetter( |
| 308 FXJSE_HOBJECT hObject, | 312 FXJSE_HOBJECT hObject, |
| 309 const CFX_ByteStringC& szPropName, | 313 const CFX_ByteStringC& szPropName, |
| 310 FX_BOOL bQueryIn) { | 314 FX_BOOL bQueryIn) { |
| 311 CXFA_Object* pObject = (CXFA_Object*)FXJSE_Value_ToObject(hObject); | 315 CXFA_Object* pObject = (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL); |
| 312 if (pObject == NULL) { | 316 if (pObject == NULL) { |
| 313 return FXJSE_ClassPropType_None; | 317 return FXJSE_ClassPropType_None; |
| 314 } | 318 } |
| 315 CXFA_ScriptContext* lpScriptContext = | 319 CXFA_ScriptContext* lpScriptContext = |
| 316 (CXFA_ScriptContext*)pObject->GetDocument()->GetScriptContext(); | 320 (CXFA_ScriptContext*)pObject->GetDocument()->GetScriptContext(); |
| 317 pObject = lpScriptContext->GetVariablesThis(pObject); | 321 pObject = lpScriptContext->GetVariablesThis(pObject); |
| 318 XFA_ELEMENT objElement = pObject->GetClassID(); | 322 XFA_ELEMENT objElement = pObject->GetClassID(); |
| 319 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); | 323 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); |
| 320 if (XFA_GetMethodByName(objElement, wsPropName.AsStringC())) { | 324 if (XFA_GetMethodByName(objElement, wsPropName.AsStringC())) { |
| 321 return FXJSE_ClassPropType_Method; | 325 return FXJSE_ClassPropType_Method; |
| 322 } | 326 } |
| 323 if (bQueryIn && | 327 if (bQueryIn && |
| 324 !XFA_GetScriptAttributeByName(objElement, wsPropName.AsStringC())) { | 328 !XFA_GetScriptAttributeByName(objElement, wsPropName.AsStringC())) { |
| 325 return FXJSE_ClassPropType_None; | 329 return FXJSE_ClassPropType_None; |
| 326 } | 330 } |
| 327 return FXJSE_ClassPropType_Property; | 331 return FXJSE_ClassPropType_Property; |
| 328 } | 332 } |
| 329 int32_t CXFA_ScriptContext::GlobalPropTypeGetter( | 333 int32_t CXFA_ScriptContext::GlobalPropTypeGetter( |
| 330 FXJSE_HOBJECT hObject, | 334 FXJSE_HOBJECT hObject, |
| 331 const CFX_ByteStringC& szPropName, | 335 const CFX_ByteStringC& szPropName, |
| 332 FX_BOOL bQueryIn) { | 336 FX_BOOL bQueryIn) { |
| 333 CXFA_Object* pObject = (CXFA_Object*)FXJSE_Value_ToObject(hObject); | 337 CXFA_Object* pObject = (CXFA_Object*)FXJSE_Value_ToObject(hObject, NULL); |
| 334 if (pObject == NULL) { | 338 if (pObject == NULL) { |
| 335 return FXJSE_ClassPropType_None; | 339 return FXJSE_ClassPropType_None; |
| 336 } | 340 } |
| 337 CXFA_ScriptContext* lpScriptContext = | 341 CXFA_ScriptContext* lpScriptContext = |
| 338 (CXFA_ScriptContext*)pObject->GetDocument()->GetScriptContext(); | 342 (CXFA_ScriptContext*)pObject->GetDocument()->GetScriptContext(); |
| 339 pObject = lpScriptContext->GetVariablesThis(pObject); | 343 pObject = lpScriptContext->GetVariablesThis(pObject); |
| 340 XFA_ELEMENT objElement = pObject->GetClassID(); | 344 XFA_ELEMENT objElement = pObject->GetClassID(); |
| 341 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); | 345 CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName); |
| 342 if (XFA_GetMethodByName(objElement, wsPropName.AsStringC())) { | 346 if (XFA_GetMethodByName(objElement, wsPropName.AsStringC())) { |
| 343 return FXJSE_ClassPropType_Method; | 347 return FXJSE_ClassPropType_Method; |
| 344 } | 348 } |
| 345 return FXJSE_ClassPropType_Property; | 349 return FXJSE_ClassPropType_Property; |
| 346 } | 350 } |
| 347 void CXFA_ScriptContext::NormalMethodCall(FXJSE_HOBJECT hThis, | 351 void CXFA_ScriptContext::NormalMethodCall(FXJSE_HOBJECT hThis, |
| 348 const CFX_ByteStringC& szFuncName, | 352 const CFX_ByteStringC& szFuncName, |
| 349 CFXJSE_Arguments& args) { | 353 CFXJSE_Arguments& args) { |
| 350 CXFA_Object* pObject = (CXFA_Object*)FXJSE_Value_ToObject(hThis); | 354 CXFA_Object* pObject = (CXFA_Object*)FXJSE_Value_ToObject(hThis, NULL); |
| 351 if (pObject == NULL) { | 355 if (pObject == NULL) { |
| 352 return; | 356 return; |
| 353 } | 357 } |
| 354 CXFA_ScriptContext* lpScriptContext = | 358 CXFA_ScriptContext* lpScriptContext = |
| 355 (CXFA_ScriptContext*)pObject->GetDocument()->GetScriptContext(); | 359 (CXFA_ScriptContext*)pObject->GetDocument()->GetScriptContext(); |
| 356 pObject = lpScriptContext->GetVariablesThis(pObject); | 360 pObject = lpScriptContext->GetVariablesThis(pObject); |
| 357 CFX_WideString wsFunName = CFX_WideString::FromUTF8(szFuncName); | 361 CFX_WideString wsFunName = CFX_WideString::FromUTF8(szFuncName); |
| 358 const XFA_METHODINFO* lpMethodInfo = | 362 const XFA_METHODINFO* lpMethodInfo = |
| 359 XFA_GetMethodByName(pObject->GetClassID(), wsFunName.AsStringC()); | 363 XFA_GetMethodByName(pObject->GetClassID(), wsFunName.AsStringC()); |
| 360 if (NULL == lpMethodInfo) { | 364 if (NULL == lpMethodInfo) { |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 return bRes; | 506 return bRes; |
| 503 } | 507 } |
| 504 | 508 |
| 505 void CXFA_ScriptContext::ReleaseVariablesMap() { | 509 void CXFA_ScriptContext::ReleaseVariablesMap() { |
| 506 FX_POSITION ps = m_mapVariableToHValue.GetStartPosition(); | 510 FX_POSITION ps = m_mapVariableToHValue.GetStartPosition(); |
| 507 while (ps) { | 511 while (ps) { |
| 508 CXFA_Object* pScriptNode; | 512 CXFA_Object* pScriptNode; |
| 509 FXJSE_HCONTEXT hVariableContext = nullptr; | 513 FXJSE_HCONTEXT hVariableContext = nullptr; |
| 510 m_mapVariableToHValue.GetNextAssoc(ps, pScriptNode, hVariableContext); | 514 m_mapVariableToHValue.GetNextAssoc(ps, pScriptNode, hVariableContext); |
| 511 FXJSE_HVALUE hObject = FXJSE_Context_GetGlobalObject(hVariableContext); | 515 FXJSE_HVALUE hObject = FXJSE_Context_GetGlobalObject(hVariableContext); |
| 512 delete static_cast<CXFA_ThisProxy*>(FXJSE_Value_ToObject(hObject)); | 516 delete static_cast<CXFA_ThisProxy*>(FXJSE_Value_ToObject(hObject, nullptr)); |
| 513 FXJSE_Value_Release(hObject); | 517 FXJSE_Value_Release(hObject); |
| 514 FXJSE_Context_Release(hVariableContext); | 518 FXJSE_Context_Release(hVariableContext); |
| 515 } | 519 } |
| 516 m_mapVariableToHValue.RemoveAll(); | 520 m_mapVariableToHValue.RemoveAll(); |
| 517 } | 521 } |
| 518 | 522 |
| 519 void CXFA_ScriptContext::DefineJsClass() { | 523 void CXFA_ScriptContext::DefineJsClass() { |
| 520 m_JsNormalClass.constructor = NULL; | 524 m_JsNormalClass.constructor = NULL; |
| 521 m_JsNormalClass.name = "XFAObject"; | 525 m_JsNormalClass.name = "XFAObject"; |
| 522 m_JsNormalClass.propNum = 0; | 526 m_JsNormalClass.propNum = 0; |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 nRet = m_pResolveProcessor->XFA_ResolveNodes(rndFind); | 640 nRet = m_pResolveProcessor->XFA_ResolveNodes(rndFind); |
| 637 if (nRet < 1) { | 641 if (nRet < 1) { |
| 638 continue; | 642 continue; |
| 639 } | 643 } |
| 640 if (rndFind.m_dwFlag == XFA_RESOVENODE_RSTYPE_Attribute && | 644 if (rndFind.m_dwFlag == XFA_RESOVENODE_RSTYPE_Attribute && |
| 641 rndFind.m_pScriptAttribute && nStart < wsExpression.GetLength()) { | 645 rndFind.m_pScriptAttribute && nStart < wsExpression.GetLength()) { |
| 642 FXJSE_HVALUE hValue = FXJSE_Value_Create(m_pIsolate); | 646 FXJSE_HVALUE hValue = FXJSE_Value_Create(m_pIsolate); |
| 643 (rndFind.m_Nodes[0]->*(rndFind.m_pScriptAttribute->lpfnCallback))( | 647 (rndFind.m_Nodes[0]->*(rndFind.m_pScriptAttribute->lpfnCallback))( |
| 644 hValue, FALSE, | 648 hValue, FALSE, |
| 645 (XFA_ATTRIBUTE)rndFind.m_pScriptAttribute->eAttribute); | 649 (XFA_ATTRIBUTE)rndFind.m_pScriptAttribute->eAttribute); |
| 646 rndFind.m_Nodes.SetAt(0, (CXFA_Object*)FXJSE_Value_ToObject(hValue)); | 650 rndFind.m_Nodes.SetAt(0, |
| 651 (CXFA_Object*)FXJSE_Value_ToObject(hValue, NULL)); |
| 647 FXJSE_Value_Release(hValue); | 652 FXJSE_Value_Release(hValue); |
| 648 } | 653 } |
| 649 int32_t iSize = m_upObjectArray.GetSize(); | 654 int32_t iSize = m_upObjectArray.GetSize(); |
| 650 if (iSize) { | 655 if (iSize) { |
| 651 m_upObjectArray.RemoveAt(iSize - 1); | 656 m_upObjectArray.RemoveAt(iSize - 1); |
| 652 } | 657 } |
| 653 retNodes.Append(rndFind.m_Nodes); | 658 retNodes.Append(rndFind.m_Nodes); |
| 654 rndFind.m_Nodes.RemoveAll(); | 659 rndFind.m_Nodes.RemoveAll(); |
| 655 if (bDataBind) { | 660 if (bDataBind) { |
| 656 break; | 661 break; |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 } | 758 } |
| 754 } | 759 } |
| 755 void CXFA_ScriptContext::AddNodesOfRunScript(CXFA_Node* pNode) { | 760 void CXFA_ScriptContext::AddNodesOfRunScript(CXFA_Node* pNode) { |
| 756 if (!m_pScriptNodeArray) { | 761 if (!m_pScriptNodeArray) { |
| 757 return; | 762 return; |
| 758 } | 763 } |
| 759 if (m_pScriptNodeArray->Find(pNode) == -1) { | 764 if (m_pScriptNodeArray->Find(pNode) == -1) { |
| 760 m_pScriptNodeArray->Add(pNode); | 765 m_pScriptNodeArray->Add(pNode); |
| 761 } | 766 } |
| 762 } | 767 } |
| OLD | NEW |