| Index: xfa/fxfa/parser/xfa_object_imp.cpp
|
| diff --git a/xfa/fxfa/parser/xfa_object_imp.cpp b/xfa/fxfa/parser/xfa_object_imp.cpp
|
| index e3d9f6bcdf1a2783e1a2d555c6f2e4e284d8c4b6..a9a5b294584e0c4392c3b52b8d2befe4f28b7f5b 100644
|
| --- a/xfa/fxfa/parser/xfa_object_imp.cpp
|
| +++ b/xfa/fxfa/parser/xfa_object_imp.cpp
|
| @@ -53,19 +53,22 @@ XFA_MAPDATABLOCKCALLBACKINFO deleteBindItemCallBack = {
|
|
|
| CXFA_Object::CXFA_Object(CXFA_Document* pDocument,
|
| XFA_ObjectType objectType,
|
| - XFA_Element elementType)
|
| + XFA_Element elementType,
|
| + const CFX_WideStringC& elementName)
|
| : m_pDocument(pDocument),
|
| m_objectType(objectType),
|
| - m_elementType(elementType) {}
|
| + m_elementType(elementType),
|
| + m_elementNameHash(FX_HashCode_GetW(elementName, false)),
|
| + m_elementName(elementName) {}
|
|
|
| CXFA_Object::~CXFA_Object() {}
|
|
|
| CFX_WideStringC CXFA_Object::GetClassName() const {
|
| - return XFA_GetElementByID(GetElementType())->pName;
|
| + return m_elementName;
|
| }
|
|
|
| uint32_t CXFA_Object::GetClassHashCode() const {
|
| - return XFA_GetElementByID(GetElementType())->uHash;
|
| + return m_elementNameHash;
|
| }
|
|
|
| XFA_Element CXFA_Object::GetElementType() const {
|
| @@ -105,8 +108,9 @@ XFA_MAPMODULEDATA::~XFA_MAPMODULEDATA() {}
|
| CXFA_Node::CXFA_Node(CXFA_Document* pDoc,
|
| uint16_t ePacket,
|
| XFA_ObjectType oType,
|
| - XFA_Element eType)
|
| - : CXFA_Object(pDoc, oType, eType),
|
| + XFA_Element eType,
|
| + const CFX_WideStringC& elementName)
|
| + : CXFA_Object(pDoc, oType, eType, elementName),
|
| m_pNext(nullptr),
|
| m_pChild(nullptr),
|
| m_pLastChild(nullptr),
|
| @@ -5066,7 +5070,8 @@ void CXFA_Node::MoveBufferMapData(CXFA_Node* pSrcModule,
|
| CXFA_ThisProxy::CXFA_ThisProxy(CXFA_Node* pThisNode, CXFA_Node* pScriptNode)
|
| : CXFA_Object(pThisNode->GetDocument(),
|
| XFA_ObjectType::VariablesThis,
|
| - XFA_Element::Unknown),
|
| + XFA_Element::Unknown,
|
| + CFX_WideStringC()),
|
| m_pThisNode(nullptr),
|
| m_pScriptNode(nullptr) {
|
| m_pThisNode = pThisNode;
|
| @@ -5084,7 +5089,10 @@ CXFA_Node* CXFA_ThisProxy::GetScriptNode() const {
|
| }
|
|
|
| CXFA_NodeList::CXFA_NodeList(CXFA_Document* pDocument)
|
| - : CXFA_Object(pDocument, XFA_ObjectType::NodeList, XFA_Element::NodeList) {
|
| + : CXFA_Object(pDocument,
|
| + XFA_ObjectType::NodeList,
|
| + XFA_Element::NodeList,
|
| + CFX_WideStringC(L"nodeList")) {
|
| m_pDocument->GetScriptContext()->AddToCacheList(
|
| std::unique_ptr<CXFA_NodeList>(this));
|
| }
|
|
|