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

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

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

Powered by Google App Engine
This is Rietveld 408576698