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

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

Issue 2101403002: Pass element hash and name into CXFA_Object constructor. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@classname_return
Patch Set: Created 4 years, 5 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_object.h" 7 #include "xfa/fxfa/parser/xfa_object.h"
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 delete static_cast<CXFA_NodeArray*>(pData); 47 delete static_cast<CXFA_NodeArray*>(pData);
48 } 48 }
49 49
50 XFA_MAPDATABLOCKCALLBACKINFO deleteBindItemCallBack = { 50 XFA_MAPDATABLOCKCALLBACKINFO deleteBindItemCallBack = {
51 XFA_DataNodeDeleteBindItem, nullptr}; 51 XFA_DataNodeDeleteBindItem, nullptr};
52 52
53 } // namespace 53 } // namespace
54 54
55 CXFA_Object::CXFA_Object(CXFA_Document* pDocument, 55 CXFA_Object::CXFA_Object(CXFA_Document* pDocument,
56 XFA_ObjectType objectType, 56 XFA_ObjectType objectType,
57 XFA_Element elementType) 57 XFA_Element elementType,
58 uint32_t elementNameHash,
59 const CFX_WideStringC& elementName)
58 : m_pDocument(pDocument), 60 : m_pDocument(pDocument),
59 m_objectType(objectType), 61 m_objectType(objectType),
60 m_elementType(elementType) {} 62 m_elementType(elementType),
63 m_elementNameHash(elementNameHash),
64 m_elementName(elementName) {}
61 65
62 CXFA_Object::~CXFA_Object() {} 66 CXFA_Object::~CXFA_Object() {}
63 67
64 CFX_WideStringC CXFA_Object::GetClassName() const { 68 const CFX_WideStringC CXFA_Object::GetClassName() const {
65 return XFA_GetElementByID(GetElementType())->pName; 69 return m_elementName;
66 } 70 }
67 71
68 uint32_t CXFA_Object::GetClassHashCode() const { 72 uint32_t CXFA_Object::GetClassHashCode() const {
69 return XFA_GetElementByID(GetElementType())->uHash; 73 return m_elementNameHash;
70 } 74 }
71 75
72 XFA_Element CXFA_Object::GetElementType() const { 76 XFA_Element CXFA_Object::GetElementType() const {
73 return m_elementType; 77 return m_elementType;
74 } 78 }
75 79
76 void CXFA_Object::Script_ObjectClass_ClassName(CFXJSE_Value* pValue, 80 void CXFA_Object::Script_ObjectClass_ClassName(CFXJSE_Value* pValue,
77 FX_BOOL bSetting, 81 FX_BOOL bSetting,
78 XFA_ATTRIBUTE eAttribute) { 82 XFA_ATTRIBUTE eAttribute) {
79 if (!bSetting) { 83 if (!bSetting) {
(...skipping 19 matching lines...) Expand all
99 FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC()); 103 FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC());
100 } 104 }
101 105
102 XFA_MAPMODULEDATA::XFA_MAPMODULEDATA() {} 106 XFA_MAPMODULEDATA::XFA_MAPMODULEDATA() {}
103 107
104 XFA_MAPMODULEDATA::~XFA_MAPMODULEDATA() {} 108 XFA_MAPMODULEDATA::~XFA_MAPMODULEDATA() {}
105 109
106 CXFA_Node::CXFA_Node(CXFA_Document* pDoc, 110 CXFA_Node::CXFA_Node(CXFA_Document* pDoc,
107 uint16_t ePacket, 111 uint16_t ePacket,
108 XFA_ObjectType oType, 112 XFA_ObjectType oType,
109 XFA_Element eType) 113 XFA_Element eType,
110 : CXFA_Object(pDoc, oType, eType), 114 uint32_t elementNameHash,
115 const CFX_WideStringC& elementName)
116 : CXFA_Object(pDoc, oType, eType, elementNameHash, elementName),
111 m_pNext(nullptr), 117 m_pNext(nullptr),
112 m_pChild(nullptr), 118 m_pChild(nullptr),
113 m_pLastChild(nullptr), 119 m_pLastChild(nullptr),
114 m_pParent(nullptr), 120 m_pParent(nullptr),
115 m_pXMLNode(nullptr), 121 m_pXMLNode(nullptr),
116 m_ePacket(ePacket), 122 m_ePacket(ePacket),
117 m_uNodeFlags(XFA_NodeFlag_None), 123 m_uNodeFlags(XFA_NodeFlag_None),
118 m_dwNameHash(0), 124 m_dwNameHash(0),
119 m_pAuxNode(nullptr), 125 m_pAuxNode(nullptr),
120 m_pMapModuleData(nullptr) { 126 m_pMapModuleData(nullptr) {
(...skipping 4942 matching lines...) Expand 10 before | Expand all | Expand 10 after
5063 pDstChild = pDstChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { 5069 pDstChild = pDstChild->GetNodeItem(XFA_NODEITEM_NextSibling)) {
5064 MoveBufferMapData(pSrcChild, pDstChild, pKey, TRUE); 5070 MoveBufferMapData(pSrcChild, pDstChild, pKey, TRUE);
5065 } 5071 }
5066 } 5072 }
5067 pSrcModule->MoveBufferMapData(pDstModule, pKey); 5073 pSrcModule->MoveBufferMapData(pDstModule, pKey);
5068 } 5074 }
5069 5075
5070 CXFA_ThisProxy::CXFA_ThisProxy(CXFA_Node* pThisNode, CXFA_Node* pScriptNode) 5076 CXFA_ThisProxy::CXFA_ThisProxy(CXFA_Node* pThisNode, CXFA_Node* pScriptNode)
5071 : CXFA_Object(pThisNode->GetDocument(), 5077 : CXFA_Object(pThisNode->GetDocument(),
5072 XFA_ObjectType::VariablesThis, 5078 XFA_ObjectType::VariablesThis,
5073 XFA_Element::Unknown), 5079 XFA_Element::Unknown,
5080 0,
5081 CFX_WideStringC()),
5074 m_pThisNode(nullptr), 5082 m_pThisNode(nullptr),
5075 m_pScriptNode(nullptr) { 5083 m_pScriptNode(nullptr) {
5076 m_pThisNode = pThisNode; 5084 m_pThisNode = pThisNode;
5077 m_pScriptNode = pScriptNode; 5085 m_pScriptNode = pScriptNode;
5078 } 5086 }
5079 5087
5080 CXFA_ThisProxy::~CXFA_ThisProxy() {} 5088 CXFA_ThisProxy::~CXFA_ThisProxy() {}
5081 5089
5082 CXFA_Node* CXFA_ThisProxy::GetThisNode() const { 5090 CXFA_Node* CXFA_ThisProxy::GetThisNode() const {
5083 return m_pThisNode; 5091 return m_pThisNode;
5084 } 5092 }
5085 5093
5086 CXFA_Node* CXFA_ThisProxy::GetScriptNode() const { 5094 CXFA_Node* CXFA_ThisProxy::GetScriptNode() const {
5087 return m_pScriptNode; 5095 return m_pScriptNode;
5088 } 5096 }
5089 5097
5090 CXFA_NodeList::CXFA_NodeList(CXFA_Document* pDocument) 5098 CXFA_NodeList::CXFA_NodeList(CXFA_Document* pDocument)
5091 : CXFA_Object(pDocument, XFA_ObjectType::NodeList, XFA_Element::NodeList) { 5099 : CXFA_Object(pDocument,
5100 XFA_ObjectType::NodeList,
5101 XFA_Element::NodeList,
5102 0xa8c7d5e2,
5103 CFX_WideStringC(L"nodeList")) {
5092 m_pDocument->GetScriptContext()->AddToCacheList( 5104 m_pDocument->GetScriptContext()->AddToCacheList(
5093 std::unique_ptr<CXFA_NodeList>(this)); 5105 std::unique_ptr<CXFA_NodeList>(this));
5094 } 5106 }
5095 5107
5096 CXFA_NodeList::~CXFA_NodeList() {} 5108 CXFA_NodeList::~CXFA_NodeList() {}
5097 5109
5098 CXFA_Node* CXFA_NodeList::NamedItem(const CFX_WideStringC& wsName) { 5110 CXFA_Node* CXFA_NodeList::NamedItem(const CFX_WideStringC& wsName) {
5099 uint32_t dwHashCode = FX_HashCode_GetW(wsName, false); 5111 uint32_t dwHashCode = FX_HashCode_GetW(wsName, false);
5100 int32_t iCount = GetLength(); 5112 int32_t iCount = GetLength();
5101 for (int32_t i = 0; i < iCount; i++) { 5113 for (int32_t i = 0; i < iCount; i++) {
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
5259 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); 5271 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode);
5260 } 5272 }
5261 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { 5273 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) {
5262 return m_pAttachNode->RemoveChild(pNode); 5274 return m_pAttachNode->RemoveChild(pNode);
5263 } 5275 }
5264 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { 5276 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) {
5265 return m_pAttachNode->GetChild( 5277 return m_pAttachNode->GetChild(
5266 iIndex, XFA_Element::Unknown, 5278 iIndex, XFA_Element::Unknown,
5267 m_pAttachNode->GetElementType() == XFA_Element::Subform); 5279 m_pAttachNode->GetElementType() == XFA_Element::Subform);
5268 } 5280 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698