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

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: Fix merge Created 4 years, 7 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_imp.h ('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"
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 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 m_JsNormalClass.name = "XFAObject"; 525 m_JsNormalClass.name = "XFAObject";
526 m_JsNormalClass.propNum = 0; 526 m_JsNormalClass.propNum = 0;
527 m_JsNormalClass.properties = NULL; 527 m_JsNormalClass.properties = NULL;
528 m_JsNormalClass.methNum = 0; 528 m_JsNormalClass.methNum = 0;
529 m_JsNormalClass.methods = NULL; 529 m_JsNormalClass.methods = NULL;
530 m_JsNormalClass.dynPropGetter = CXFA_ScriptContext::NormalPropertyGetter; 530 m_JsNormalClass.dynPropGetter = CXFA_ScriptContext::NormalPropertyGetter;
531 m_JsNormalClass.dynPropSetter = CXFA_ScriptContext::NormalPropertySetter; 531 m_JsNormalClass.dynPropSetter = CXFA_ScriptContext::NormalPropertySetter;
532 m_JsNormalClass.dynPropTypeGetter = CXFA_ScriptContext::NormalPropTypeGetter; 532 m_JsNormalClass.dynPropTypeGetter = CXFA_ScriptContext::NormalPropTypeGetter;
533 m_JsNormalClass.dynPropDeleter = NULL; 533 m_JsNormalClass.dynPropDeleter = NULL;
534 m_JsNormalClass.dynMethodCall = CXFA_ScriptContext::NormalMethodCall; 534 m_JsNormalClass.dynMethodCall = CXFA_ScriptContext::NormalMethodCall;
535 m_hJsClass = FXJSE_DefineClass(m_pJsContext, &m_JsNormalClass); 535 m_pJsClass = FXJSE_DefineClass(m_pJsContext, &m_JsNormalClass);
536 } 536 }
537 void CXFA_ScriptContext::RemoveBuiltInObjs(CFXJSE_Context* pContext) const { 537 void CXFA_ScriptContext::RemoveBuiltInObjs(CFXJSE_Context* pContext) const {
538 static const CFX_ByteStringC OBJ_NAME[2] = {"Number", "Date"}; 538 static const CFX_ByteStringC OBJ_NAME[2] = {"Number", "Date"};
539 FXJSE_HVALUE hObject = FXJSE_Context_GetGlobalObject(pContext); 539 FXJSE_HVALUE hObject = FXJSE_Context_GetGlobalObject(pContext);
540 FXJSE_HVALUE hProp = FXJSE_Value_Create(m_pIsolate); 540 FXJSE_HVALUE hProp = FXJSE_Value_Create(m_pIsolate);
541 for (int i = 0; i < 2; ++i) { 541 for (int i = 0; i < 2; ++i) {
542 if (FXJSE_Value_GetObjectProp(hObject, OBJ_NAME[i], hProp)) 542 if (FXJSE_Value_GetObjectProp(hObject, OBJ_NAME[i], hProp))
543 FXJSE_Value_DeleteObjectProp(hObject, OBJ_NAME[i]); 543 FXJSE_Value_DeleteObjectProp(hObject, OBJ_NAME[i]);
544 } 544 }
545 FXJSE_Value_Release(hProp); 545 FXJSE_Value_Release(hProp);
546 FXJSE_Value_Release(hObject); 546 FXJSE_Value_Release(hObject);
547 } 547 }
548 FXJSE_HCLASS CXFA_ScriptContext::GetJseNormalClass() { 548 CFXJSE_Class* CXFA_ScriptContext::GetJseNormalClass() {
549 return m_hJsClass; 549 return m_pJsClass;
550 } 550 }
551 int32_t CXFA_ScriptContext::ResolveObjects(CXFA_Object* refNode, 551 int32_t CXFA_ScriptContext::ResolveObjects(CXFA_Object* refNode,
552 const CFX_WideStringC& wsExpression, 552 const CFX_WideStringC& wsExpression,
553 XFA_RESOLVENODE_RS& resolveNodeRS, 553 XFA_RESOLVENODE_RS& resolveNodeRS,
554 uint32_t dwStyles, 554 uint32_t dwStyles,
555 CXFA_Node* bindNode) { 555 CXFA_Node* bindNode) {
556 if (wsExpression.IsEmpty()) { 556 if (wsExpression.IsEmpty()) {
557 return 0; 557 return 0;
558 } 558 }
559 if (m_eScriptType != XFA_SCRIPTLANGTYPE_Formcalc || 559 if (m_eScriptType != XFA_SCRIPTLANGTYPE_Formcalc ||
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 FXJSE_HVALUE CXFA_ScriptContext::GetJSValueFromMap(CXFA_Object* pObject) { 715 FXJSE_HVALUE CXFA_ScriptContext::GetJSValueFromMap(CXFA_Object* pObject) {
716 if (!pObject) { 716 if (!pObject) {
717 return NULL; 717 return NULL;
718 } 718 }
719 if (pObject->IsNode()) { 719 if (pObject->IsNode()) {
720 RunVariablesScript(pObject->AsNode()); 720 RunVariablesScript(pObject->AsNode());
721 } 721 }
722 void* pValue = m_mapXFAToHValue.GetValueAt(pObject); 722 void* pValue = m_mapXFAToHValue.GetValueAt(pObject);
723 if (pValue == NULL) { 723 if (pValue == NULL) {
724 FXJSE_HVALUE jsHvalue = FXJSE_Value_Create(m_pIsolate); 724 FXJSE_HVALUE jsHvalue = FXJSE_Value_Create(m_pIsolate);
725 FXJSE_Value_SetObject(jsHvalue, pObject, m_hJsClass); 725 FXJSE_Value_SetObject(jsHvalue, pObject, m_pJsClass);
726 m_mapXFAToHValue.SetAt(pObject, jsHvalue); 726 m_mapXFAToHValue.SetAt(pObject, jsHvalue);
727 pValue = jsHvalue; 727 pValue = jsHvalue;
728 } 728 }
729 return (FXJSE_HVALUE)pValue; 729 return (FXJSE_HVALUE)pValue;
730 } 730 }
731 int32_t CXFA_ScriptContext::GetIndexByName(CXFA_Node* refNode) { 731 int32_t CXFA_ScriptContext::GetIndexByName(CXFA_Node* refNode) {
732 CXFA_NodeHelper* lpNodeHelper = m_pResolveProcessor->GetNodeHelper(); 732 CXFA_NodeHelper* lpNodeHelper = m_pResolveProcessor->GetNodeHelper();
733 return lpNodeHelper->XFA_GetIndex(refNode, XFA_LOGIC_Transparent, 733 return lpNodeHelper->XFA_GetIndex(refNode, XFA_LOGIC_Transparent,
734 lpNodeHelper->XFA_NodeIsProperty(refNode), 734 lpNodeHelper->XFA_NodeIsProperty(refNode),
735 FALSE); 735 FALSE);
(...skipping 22 matching lines...) Expand all
758 } 758 }
759 } 759 }
760 void CXFA_ScriptContext::AddNodesOfRunScript(CXFA_Node* pNode) { 760 void CXFA_ScriptContext::AddNodesOfRunScript(CXFA_Node* pNode) {
761 if (!m_pScriptNodeArray) { 761 if (!m_pScriptNodeArray) {
762 return; 762 return;
763 } 763 }
764 if (m_pScriptNodeArray->Find(pNode) == -1) { 764 if (m_pScriptNodeArray->Find(pNode) == -1) {
765 m_pScriptNodeArray->Add(pNode); 765 m_pScriptNodeArray->Add(pNode);
766 } 766 }
767 } 767 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/xfa_script_imp.h ('k') | xfa/fxjse/cfxjse_arguments.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698