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

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

Issue 2014213002: Replace FXJSE_HCLASS with CFXJSE_Class* (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@fxjse_hcontext
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
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"
11 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" 11 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h"
12 #include "xfa/fxfa/parser/xfa_doclayout.h" 12 #include "xfa/fxfa/parser/xfa_doclayout.h"
13 #include "xfa/fxfa/parser/xfa_document.h" 13 #include "xfa/fxfa/parser/xfa_document.h"
14 #include "xfa/fxfa/parser/xfa_localemgr.h" 14 #include "xfa/fxfa/parser/xfa_localemgr.h"
15 #include "xfa/fxfa/parser/xfa_object.h" 15 #include "xfa/fxfa/parser/xfa_object.h"
16 #include "xfa/fxfa/parser/xfa_parser.h" 16 #include "xfa/fxfa/parser/xfa_parser.h"
17 #include "xfa/fxfa/parser/xfa_script.h" 17 #include "xfa/fxfa/parser/xfa_script.h"
18 #include "xfa/fxfa/parser/xfa_script_nodehelper.h" 18 #include "xfa/fxfa/parser/xfa_script_nodehelper.h"
19 #include "xfa/fxfa/parser/xfa_script_resolveprocessor.h" 19 #include "xfa/fxfa/parser/xfa_script_resolveprocessor.h"
20 #include "xfa/fxfa/parser/xfa_utils.h" 20 #include "xfa/fxfa/parser/xfa_utils.h"
21 #include "xfa/fxjse/cfxjse_arguments.h" 21 #include "xfa/fxjse/cfxjse_arguments.h"
22 22
23 CXFA_ScriptContext::CXFA_ScriptContext(CXFA_Document* pDocument) 23 CXFA_ScriptContext::CXFA_ScriptContext(CXFA_Document* pDocument)
24 : m_pDocument(pDocument), 24 : m_pDocument(pDocument),
25 m_pJsContext(nullptr), 25 m_pJsContext(nullptr),
26 m_pIsolate(nullptr), 26 m_pIsolate(nullptr),
27 m_hJsClass(nullptr), 27 m_pJsClass(nullptr),
28 m_eScriptType(XFA_SCRIPTLANGTYPE_Unkown), 28 m_eScriptType(XFA_SCRIPTLANGTYPE_Unkown),
29 m_pScriptNodeArray(nullptr), 29 m_pScriptNodeArray(nullptr),
30 m_pResolveProcessor(nullptr), 30 m_pResolveProcessor(nullptr),
31 m_hFM2JSContext(nullptr), 31 m_hFM2JSContext(nullptr),
32 m_pThisObject(nullptr), 32 m_pThisObject(nullptr),
33 m_dwBuiltInInFlags(0), 33 m_dwBuiltInInFlags(0),
34 m_eRunAtType(XFA_ATTRIBUTEENUM_Client) { 34 m_eRunAtType(XFA_ATTRIBUTEENUM_Client) {
35 FXSYS_memset(&m_JsGlobalClass, 0, sizeof(FXJSE_CLASS)); 35 FXSYS_memset(&m_JsGlobalClass, 0, sizeof(FXJSE_CLASS));
36 FXSYS_memset(&m_JsNormalClass, 0, sizeof(FXJSE_CLASS)); 36 FXSYS_memset(&m_JsNormalClass, 0, sizeof(FXJSE_CLASS));
37 } 37 }
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 m_JsNormalClass.name = "XFAObject"; 521 m_JsNormalClass.name = "XFAObject";
522 m_JsNormalClass.propNum = 0; 522 m_JsNormalClass.propNum = 0;
523 m_JsNormalClass.properties = NULL; 523 m_JsNormalClass.properties = NULL;
524 m_JsNormalClass.methNum = 0; 524 m_JsNormalClass.methNum = 0;
525 m_JsNormalClass.methods = NULL; 525 m_JsNormalClass.methods = NULL;
526 m_JsNormalClass.dynPropGetter = CXFA_ScriptContext::NormalPropertyGetter; 526 m_JsNormalClass.dynPropGetter = CXFA_ScriptContext::NormalPropertyGetter;
527 m_JsNormalClass.dynPropSetter = CXFA_ScriptContext::NormalPropertySetter; 527 m_JsNormalClass.dynPropSetter = CXFA_ScriptContext::NormalPropertySetter;
528 m_JsNormalClass.dynPropTypeGetter = CXFA_ScriptContext::NormalPropTypeGetter; 528 m_JsNormalClass.dynPropTypeGetter = CXFA_ScriptContext::NormalPropTypeGetter;
529 m_JsNormalClass.dynPropDeleter = NULL; 529 m_JsNormalClass.dynPropDeleter = NULL;
530 m_JsNormalClass.dynMethodCall = CXFA_ScriptContext::NormalMethodCall; 530 m_JsNormalClass.dynMethodCall = CXFA_ScriptContext::NormalMethodCall;
531 m_hJsClass = FXJSE_DefineClass(m_pJsContext, &m_JsNormalClass); 531 m_pJsClass = FXJSE_DefineClass(m_pJsContext, &m_JsNormalClass);
532 } 532 }
533 void CXFA_ScriptContext::RemoveBuiltInObjs(CFXJSE_Context* pContext) const { 533 void CXFA_ScriptContext::RemoveBuiltInObjs(CFXJSE_Context* pContext) const {
534 static const CFX_ByteStringC OBJ_NAME[2] = {"Number", "Date"}; 534 static const CFX_ByteStringC OBJ_NAME[2] = {"Number", "Date"};
535 FXJSE_HVALUE hObject = FXJSE_Context_GetGlobalObject(pContext); 535 FXJSE_HVALUE hObject = FXJSE_Context_GetGlobalObject(pContext);
536 FXJSE_HVALUE hProp = FXJSE_Value_Create(m_pIsolate); 536 FXJSE_HVALUE hProp = FXJSE_Value_Create(m_pIsolate);
537 for (int i = 0; i < 2; ++i) { 537 for (int i = 0; i < 2; ++i) {
538 if (FXJSE_Value_GetObjectProp(hObject, OBJ_NAME[i], hProp)) 538 if (FXJSE_Value_GetObjectProp(hObject, OBJ_NAME[i], hProp))
539 FXJSE_Value_DeleteObjectProp(hObject, OBJ_NAME[i]); 539 FXJSE_Value_DeleteObjectProp(hObject, OBJ_NAME[i]);
540 } 540 }
541 FXJSE_Value_Release(hProp); 541 FXJSE_Value_Release(hProp);
542 FXJSE_Value_Release(hObject); 542 FXJSE_Value_Release(hObject);
543 } 543 }
544 FXJSE_HCLASS CXFA_ScriptContext::GetJseNormalClass() { 544 CFXJSE_Class* CXFA_ScriptContext::GetJseNormalClass() {
545 return m_hJsClass; 545 return m_pJsClass;
546 } 546 }
547 int32_t CXFA_ScriptContext::ResolveObjects(CXFA_Object* refNode, 547 int32_t CXFA_ScriptContext::ResolveObjects(CXFA_Object* refNode,
548 const CFX_WideStringC& wsExpression, 548 const CFX_WideStringC& wsExpression,
549 XFA_RESOLVENODE_RS& resolveNodeRS, 549 XFA_RESOLVENODE_RS& resolveNodeRS,
550 uint32_t dwStyles, 550 uint32_t dwStyles,
551 CXFA_Node* bindNode) { 551 CXFA_Node* bindNode) {
552 if (wsExpression.IsEmpty()) { 552 if (wsExpression.IsEmpty()) {
553 return 0; 553 return 0;
554 } 554 }
555 if (m_eScriptType != XFA_SCRIPTLANGTYPE_Formcalc || 555 if (m_eScriptType != XFA_SCRIPTLANGTYPE_Formcalc ||
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 FXJSE_HVALUE CXFA_ScriptContext::GetJSValueFromMap(CXFA_Object* pObject) { 710 FXJSE_HVALUE CXFA_ScriptContext::GetJSValueFromMap(CXFA_Object* pObject) {
711 if (!pObject) { 711 if (!pObject) {
712 return NULL; 712 return NULL;
713 } 713 }
714 if (pObject->IsNode()) { 714 if (pObject->IsNode()) {
715 RunVariablesScript(pObject->AsNode()); 715 RunVariablesScript(pObject->AsNode());
716 } 716 }
717 void* pValue = m_mapXFAToHValue.GetValueAt(pObject); 717 void* pValue = m_mapXFAToHValue.GetValueAt(pObject);
718 if (pValue == NULL) { 718 if (pValue == NULL) {
719 FXJSE_HVALUE jsHvalue = FXJSE_Value_Create(m_pIsolate); 719 FXJSE_HVALUE jsHvalue = FXJSE_Value_Create(m_pIsolate);
720 FXJSE_Value_SetObject(jsHvalue, pObject, m_hJsClass); 720 FXJSE_Value_SetObject(jsHvalue, pObject, m_pJsClass);
721 m_mapXFAToHValue.SetAt(pObject, jsHvalue); 721 m_mapXFAToHValue.SetAt(pObject, jsHvalue);
722 pValue = jsHvalue; 722 pValue = jsHvalue;
723 } 723 }
724 return (FXJSE_HVALUE)pValue; 724 return (FXJSE_HVALUE)pValue;
725 } 725 }
726 int32_t CXFA_ScriptContext::GetIndexByName(CXFA_Node* refNode) { 726 int32_t CXFA_ScriptContext::GetIndexByName(CXFA_Node* refNode) {
727 CXFA_NodeHelper* lpNodeHelper = m_pResolveProcessor->GetNodeHelper(); 727 CXFA_NodeHelper* lpNodeHelper = m_pResolveProcessor->GetNodeHelper();
728 return lpNodeHelper->XFA_GetIndex(refNode, XFA_LOGIC_Transparent, 728 return lpNodeHelper->XFA_GetIndex(refNode, XFA_LOGIC_Transparent,
729 lpNodeHelper->XFA_NodeIsProperty(refNode), 729 lpNodeHelper->XFA_NodeIsProperty(refNode),
730 FALSE); 730 FALSE);
(...skipping 22 matching lines...) Expand all
753 } 753 }
754 } 754 }
755 void CXFA_ScriptContext::AddNodesOfRunScript(CXFA_Node* pNode) { 755 void CXFA_ScriptContext::AddNodesOfRunScript(CXFA_Node* pNode) {
756 if (!m_pScriptNodeArray) { 756 if (!m_pScriptNodeArray) {
757 return; 757 return;
758 } 758 }
759 if (m_pScriptNodeArray->Find(pNode) == -1) { 759 if (m_pScriptNodeArray->Find(pNode) == -1) {
760 m_pScriptNodeArray->Add(pNode); 760 m_pScriptNodeArray->Add(pNode);
761 } 761 }
762 } 762 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698