| Index: core/src/fxcrt/fx_xml_parser.cpp
|
| diff --git a/core/src/fxcrt/fx_xml_parser.cpp b/core/src/fxcrt/fx_xml_parser.cpp
|
| index b7e58a04e1b21e06c53c862a9651a9a51803a6c4..d41880a6c45180f73982a3fe6f8a5ed8f46c4cc8 100644
|
| --- a/core/src/fxcrt/fx_xml_parser.cpp
|
| +++ b/core/src/fxcrt/fx_xml_parser.cpp
|
| @@ -1,24 +1,20 @@
|
| // Copyright 2014 PDFium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
| -
|
| +
|
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
|
|
| #include "../../include/fxcrt/fx_xml.h"
|
| #include "xml_int.h"
|
| CXML_Parser::~CXML_Parser()
|
| {
|
| - if (m_bOwnedStream && m_pDataAcc) {
|
| + if (m_bOwnedStream) {
|
| m_pDataAcc->Release();
|
| }
|
| }
|
| FX_BOOL CXML_Parser::Init(FX_LPBYTE pBuffer, size_t size)
|
| {
|
| - if (m_pAllocator) {
|
| - m_pDataAcc = FX_NewAtAllocator(m_pAllocator)CXML_DataBufAcc(pBuffer, size, m_pAllocator);
|
| - } else {
|
| - m_pDataAcc = FX_NEW CXML_DataBufAcc(pBuffer, size, NULL);
|
| - }
|
| + m_pDataAcc = FX_NEW CXML_DataBufAcc(pBuffer, size);
|
| if (!m_pDataAcc) {
|
| return FALSE;
|
| }
|
| @@ -26,11 +22,7 @@ FX_BOOL CXML_Parser::Init(FX_LPBYTE pBuffer, size_t size)
|
| }
|
| FX_BOOL CXML_Parser::Init(IFX_FileRead *pFileRead)
|
| {
|
| - if (m_pAllocator) {
|
| - m_pDataAcc = FX_NewAtAllocator(m_pAllocator)CXML_DataStmAcc(pFileRead, m_pAllocator);
|
| - } else {
|
| - m_pDataAcc = FX_NEW CXML_DataStmAcc(pFileRead, NULL);
|
| - }
|
| + m_pDataAcc = FX_NEW CXML_DataStmAcc(pFileRead);
|
| if (!m_pDataAcc) {
|
| return FALSE;
|
| }
|
| @@ -136,19 +128,19 @@ void CXML_Parser::SkipWhiteSpaces()
|
| }
|
| } while (ReadNextBlock());
|
| }
|
| -void CXML_Parser::GetName(CFX_ByteStringL &space, CFX_ByteStringL &name)
|
| +void CXML_Parser::GetName(CFX_ByteString &space, CFX_ByteString &name)
|
| {
|
| m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex;
|
| if (IsEOF()) {
|
| return;
|
| }
|
| - CFX_ByteTextBuf buf(m_pAllocator);
|
| + CFX_ByteTextBuf buf;
|
| FX_BYTE ch;
|
| do {
|
| while (m_dwIndex < m_dwBufferSize) {
|
| ch = m_pBuffer[m_dwIndex];
|
| if (ch == ':') {
|
| - buf.GetByteStringL(space);
|
| + space = buf.GetByteString();
|
| buf.Clear();
|
| } else if (g_FXCRT_XML_IsNameChar(ch)) {
|
| buf.AppendChar(ch);
|
| @@ -162,7 +154,7 @@ void CXML_Parser::GetName(CFX_ByteStringL &space, CFX_ByteStringL &name)
|
| break;
|
| }
|
| } while (ReadNextBlock());
|
| - buf.GetByteStringL(name);
|
| + name = buf.GetByteString();
|
| }
|
| void CXML_Parser::SkipLiterals(FX_BSTR str)
|
| {
|
| @@ -204,7 +196,7 @@ FX_DWORD CXML_Parser::GetCharRef()
|
| }
|
| FX_BYTE ch;
|
| FX_INT32 iState = 0;
|
| - CFX_ByteTextBuf buf(m_pAllocator);
|
| + CFX_ByteTextBuf buf;
|
| FX_DWORD code = 0;
|
| do {
|
| while (m_dwIndex < m_dwBufferSize) {
|
| @@ -283,13 +275,13 @@ FX_DWORD CXML_Parser::GetCharRef()
|
| } while (ReadNextBlock());
|
| return code;
|
| }
|
| -void CXML_Parser::GetAttrValue(CFX_WideStringL &value)
|
| +void CXML_Parser::GetAttrValue(CFX_WideString &value)
|
| {
|
| m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex;
|
| if (IsEOF()) {
|
| return;
|
| }
|
| - CFX_UTF8Decoder decoder(m_pAllocator);
|
| + CFX_UTF8Decoder decoder;
|
| FX_BYTE mark = 0, ch;
|
| do {
|
| while (m_dwIndex < m_dwBufferSize) {
|
| @@ -310,7 +302,7 @@ void CXML_Parser::GetAttrValue(CFX_WideStringL &value)
|
| if (ch == '&') {
|
| decoder.AppendChar(GetCharRef());
|
| if (IsEOF()) {
|
| - decoder.GetResult(value);
|
| + value = decoder.GetResult();
|
| return;
|
| }
|
| } else {
|
| @@ -322,9 +314,9 @@ void CXML_Parser::GetAttrValue(CFX_WideStringL &value)
|
| break;
|
| }
|
| } while (ReadNextBlock());
|
| - decoder.GetResult(value);
|
| + value = decoder.GetResult();
|
| }
|
| -void CXML_Parser::GetTagName(CFX_ByteStringL &space, CFX_ByteStringL &name, FX_BOOL &bEndTag, FX_BOOL bStartTag)
|
| +void CXML_Parser::GetTagName(CFX_ByteString &space, CFX_ByteString &name, FX_BOOL &bEndTag, FX_BOOL bStartTag)
|
| {
|
| m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex;
|
| if (IsEOF()) {
|
| @@ -379,30 +371,23 @@ CXML_Element* CXML_Parser::ParseElement(CXML_Element* pParent, FX_BOOL bStartTag
|
| if (IsEOF()) {
|
| return NULL;
|
| }
|
| - CFX_ByteStringL tag_name, tag_space;
|
| + CFX_ByteString tag_name, tag_space;
|
| FX_BOOL bEndTag;
|
| GetTagName(tag_space, tag_name, bEndTag, bStartTag);
|
| if (tag_name.IsEmpty() || bEndTag) {
|
| - tag_space.Empty(m_pAllocator);
|
| return NULL;
|
| }
|
| CXML_Element* pElement;
|
| - if (m_pAllocator) {
|
| - pElement = FX_NewAtAllocator(m_pAllocator)CXML_Element(m_pAllocator);
|
| - } else {
|
| - pElement = FX_NEW CXML_Element;
|
| - }
|
| + pElement = FX_NEW CXML_Element;
|
| if (pElement) {
|
| pElement->m_pParent = pParent;
|
| pElement->SetTag(tag_space, tag_name);
|
| }
|
| - tag_space.Empty(m_pAllocator);
|
| - tag_name.Empty(m_pAllocator);
|
| if (!pElement) {
|
| return NULL;
|
| }
|
| do {
|
| - CFX_ByteStringL attr_space, attr_name;
|
| + CFX_ByteString attr_space, attr_name;
|
| while (m_dwIndex < m_dwBufferSize) {
|
| SkipWhiteSpaces();
|
| if (IsEOF()) {
|
| @@ -411,8 +396,6 @@ CXML_Element* CXML_Parser::ParseElement(CXML_Element* pParent, FX_BOOL bStartTag
|
| if (!g_FXCRT_XML_IsNameIntro(m_pBuffer[m_dwIndex])) {
|
| break;
|
| }
|
| - attr_space.Empty(m_pAllocator);
|
| - attr_name.Empty(m_pAllocator);
|
| GetName(attr_space, attr_name);
|
| SkipWhiteSpaces();
|
| if (IsEOF()) {
|
| @@ -426,13 +409,10 @@ CXML_Element* CXML_Parser::ParseElement(CXML_Element* pParent, FX_BOOL bStartTag
|
| if (IsEOF()) {
|
| break;
|
| }
|
| - CFX_WideStringL attr_value;
|
| + CFX_WideString attr_value;
|
| GetAttrValue(attr_value);
|
| - pElement->m_AttrMap.SetAt(attr_space, attr_name, attr_value, m_pAllocator);
|
| - attr_value.Empty(m_pAllocator);
|
| + pElement->m_AttrMap.SetAt(attr_space, attr_name, attr_value);
|
| }
|
| - attr_space.Empty(m_pAllocator);
|
| - attr_name.Empty(m_pAllocator);
|
| m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex;
|
| if (m_dwIndex < m_dwBufferSize || IsEOF()) {
|
| break;
|
| @@ -450,19 +430,15 @@ CXML_Element* CXML_Parser::ParseElement(CXML_Element* pParent, FX_BOOL bStartTag
|
| }
|
| if (ch != '>') {
|
| m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex;
|
| - if (m_pAllocator) {
|
| - FX_DeleteAtAllocator(pElement, m_pAllocator, CXML_Element);
|
| - } else {
|
| - delete pElement;
|
| - }
|
| + delete pElement;
|
| return NULL;
|
| }
|
| SkipWhiteSpaces();
|
| if (IsEOF()) {
|
| return pElement;
|
| }
|
| - CFX_UTF8Decoder decoder(m_pAllocator);
|
| - CFX_WideTextBuf content(m_pAllocator);
|
| + CFX_UTF8Decoder decoder;
|
| + CFX_WideTextBuf content;
|
| FX_BOOL bCDATA = FALSE;
|
| FX_INT32 iState = 0;
|
| do {
|
| @@ -487,22 +463,18 @@ CXML_Element* CXML_Parser::ParseElement(CXML_Element* pParent, FX_BOOL bStartTag
|
| SkipWhiteSpaces();
|
| iState = 0;
|
| } else if (ch == '/') {
|
| - CFX_ByteStringL space, name;
|
| + CFX_ByteString space, name;
|
| GetName(space, name);
|
| - space.Empty(m_pAllocator);
|
| - name.Empty(m_pAllocator);
|
| SkipWhiteSpaces();
|
| m_dwIndex ++;
|
| iState = 10;
|
| } else {
|
| content << decoder.GetResult();
|
| - CFX_WideStringL dataStr;
|
| - content.GetWideStringL(dataStr);
|
| + CFX_WideString dataStr = content.GetWideString();
|
| if (!bCDATA && !m_bSaveSpaceChars) {
|
| dataStr.TrimRight((FX_LPCWSTR)L" \t\r\n");
|
| }
|
| InsertContentSegment(bCDATA, dataStr, pElement);
|
| - dataStr.Empty(m_pAllocator);
|
| content.Clear();
|
| decoder.Clear();
|
| bCDATA = FALSE;
|
| @@ -542,13 +514,11 @@ CXML_Element* CXML_Parser::ParseElement(CXML_Element* pParent, FX_BOOL bStartTag
|
| }
|
| } while (ReadNextBlock());
|
| content << decoder.GetResult();
|
| - CFX_WideStringL dataStr;
|
| - content.GetWideStringL(dataStr);
|
| + CFX_WideString dataStr = content.GetWideString();
|
| if (!m_bSaveSpaceChars) {
|
| dataStr.TrimRight((FX_LPCWSTR)L" \t\r\n");
|
| }
|
| InsertContentSegment(bCDATA, dataStr, pElement);
|
| - dataStr.Empty(m_pAllocator);
|
| content.Clear();
|
| decoder.Clear();
|
| bCDATA = FALSE;
|
| @@ -560,15 +530,11 @@ void CXML_Parser::InsertContentSegment(FX_BOOL bCDATA, FX_WSTR content, CXML_Ele
|
| return;
|
| }
|
| CXML_Content* pContent;
|
| - if (m_pAllocator) {
|
| - pContent = FX_NewAtAllocator(m_pAllocator)CXML_Content;
|
| - } else {
|
| - pContent = FX_NEW CXML_Content;
|
| - }
|
| + pContent = FX_NEW CXML_Content;
|
| if (!pContent) {
|
| return;
|
| }
|
| - pContent->Set(bCDATA, content, m_pAllocator);
|
| + pContent->Set(bCDATA, content);
|
| pElement->m_Children.Add((FX_LPVOID)CXML_Element::Content);
|
| pElement->m_Children.Add(pContent);
|
| }
|
| @@ -581,54 +547,49 @@ static CXML_Element* XML_ContinueParse(CXML_Parser &parser, FX_BOOL bSaveSpaceCh
|
| }
|
| return pElement;
|
| }
|
| -CXML_Element* CXML_Element::Parse(const void* pBuffer, size_t size, FX_BOOL bSaveSpaceChars, FX_FILESIZE* pParsedSize, IFX_Allocator* pAllocator)
|
| +CXML_Element* CXML_Element::Parse(const void* pBuffer, size_t size, FX_BOOL bSaveSpaceChars, FX_FILESIZE* pParsedSize)
|
| {
|
| - CXML_Parser parser(pAllocator);
|
| + CXML_Parser parser;
|
| if (!parser.Init((FX_LPBYTE)pBuffer, size)) {
|
| return NULL;
|
| }
|
| return XML_ContinueParse(parser, bSaveSpaceChars, pParsedSize);
|
| }
|
| -CXML_Element* CXML_Element::Parse(IFX_FileRead *pFile, FX_BOOL bSaveSpaceChars, FX_FILESIZE* pParsedSize, IFX_Allocator* pAllocator)
|
| +CXML_Element* CXML_Element::Parse(IFX_FileRead *pFile, FX_BOOL bSaveSpaceChars, FX_FILESIZE* pParsedSize)
|
| {
|
| - CXML_Parser parser(pAllocator);
|
| + CXML_Parser parser;
|
| if (!parser.Init(pFile)) {
|
| return NULL;
|
| }
|
| return XML_ContinueParse(parser, bSaveSpaceChars, pParsedSize);
|
| }
|
| -CXML_Element* CXML_Element::Parse(IFX_BufferRead *pBuffer, FX_BOOL bSaveSpaceChars, FX_FILESIZE* pParsedSize, IFX_Allocator* pAllocator)
|
| +CXML_Element* CXML_Element::Parse(IFX_BufferRead *pBuffer, FX_BOOL bSaveSpaceChars, FX_FILESIZE* pParsedSize)
|
| {
|
| - CXML_Parser parser(pAllocator);
|
| + CXML_Parser parser;
|
| if (!parser.Init(pBuffer)) {
|
| return NULL;
|
| }
|
| return XML_ContinueParse(parser, bSaveSpaceChars, pParsedSize);
|
| }
|
| -CXML_Element::CXML_Element(IFX_Allocator* pAllocator)
|
| - : m_pParent(NULL)
|
| - , m_QSpaceName()
|
| +CXML_Element::CXML_Element()
|
| + : m_QSpaceName()
|
| , m_TagName()
|
| , m_AttrMap()
|
| - , m_Children(pAllocator)
|
| {
|
| }
|
| -CXML_Element::CXML_Element(FX_BSTR qSpace, FX_BSTR tagName, IFX_Allocator* pAllocator)
|
| - : m_pParent(NULL)
|
| - , m_QSpaceName()
|
| +CXML_Element::CXML_Element(FX_BSTR qSpace, FX_BSTR tagName)
|
| + : m_QSpaceName()
|
| , m_TagName()
|
| , m_AttrMap()
|
| - , m_Children(pAllocator)
|
| {
|
| - m_QSpaceName.Set(qSpace, pAllocator);
|
| - m_TagName.Set(tagName, pAllocator);
|
| + m_QSpaceName = qSpace;
|
| + m_TagName = tagName;
|
| }
|
| -CXML_Element::CXML_Element(FX_BSTR qTagName, IFX_Allocator* pAllocator)
|
| +CXML_Element::CXML_Element(FX_BSTR qTagName)
|
| : m_pParent(NULL)
|
| , m_QSpaceName()
|
| , m_TagName()
|
| , m_AttrMap()
|
| - , m_Children(pAllocator)
|
| {
|
| SetTag(qTagName);
|
| }
|
| @@ -638,32 +599,19 @@ CXML_Element::~CXML_Element()
|
| }
|
| void CXML_Element::Empty()
|
| {
|
| - IFX_Allocator* pAllocator = m_Children.m_pAllocator;
|
| - m_QSpaceName.Empty(pAllocator);
|
| - m_TagName.Empty(pAllocator);
|
| - m_AttrMap.RemoveAll(pAllocator);
|
| RemoveChildren();
|
| }
|
| void CXML_Element::RemoveChildren()
|
| {
|
| - IFX_Allocator* pAllocator = m_Children.m_pAllocator;
|
| for (int i = 0; i < m_Children.GetSize(); i += 2) {
|
| ChildType type = (ChildType)(FX_UINTPTR)m_Children.GetAt(i);
|
| if (type == Content) {
|
| CXML_Content* content = (CXML_Content*)m_Children.GetAt(i + 1);
|
| - if (pAllocator) {
|
| - FX_DeleteAtAllocator(content, pAllocator, CXML_Content);
|
| - } else {
|
| - delete content;
|
| - }
|
| + delete content;
|
| } else if (type == Element) {
|
| CXML_Element* child = (CXML_Element*)m_Children.GetAt(i + 1);
|
| child->RemoveChildren();
|
| - if (pAllocator) {
|
| - FX_DeleteAtAllocator(child, pAllocator, CXML_Element);
|
| - } else {
|
| - delete child;
|
| - }
|
| + delete child;
|
| }
|
| }
|
| m_Children.RemoveAll();
|
| @@ -678,25 +626,6 @@ CFX_ByteString CXML_Element::GetTagName(FX_BOOL bQualified) const
|
| bsTag += m_TagName;
|
| return bsTag;
|
| }
|
| -void CXML_Element::GetTagName(CFX_ByteStringL &tagName, FX_BOOL bQualified) const
|
| -{
|
| - IFX_Allocator* pAllocator = m_Children.m_pAllocator;
|
| - if (!bQualified || m_QSpaceName.IsEmpty()) {
|
| - tagName.Set(m_TagName, pAllocator);
|
| - return;
|
| - }
|
| - FX_LPSTR str = tagName.AllocBuffer(m_QSpaceName.GetLength() + m_TagName.GetLength() + 2, pAllocator);
|
| - if (!str) {
|
| - return;
|
| - }
|
| - FXSYS_memcpy32(str, m_QSpaceName.GetCStr(), m_QSpaceName.GetLength());
|
| - str += m_QSpaceName.GetLength();
|
| - *str = ':';
|
| - str ++;
|
| - FXSYS_memcpy32(str, m_TagName.GetCStr(), m_TagName.GetLength());
|
| - str += m_TagName.GetLength();
|
| - *str = '\0';
|
| -}
|
| CFX_ByteString CXML_Element::GetNamespace(FX_BOOL bQualified) const
|
| {
|
| if (bQualified) {
|
| @@ -704,18 +633,9 @@ CFX_ByteString CXML_Element::GetNamespace(FX_BOOL bQualified) const
|
| }
|
| return GetNamespaceURI(m_QSpaceName);
|
| }
|
| -void CXML_Element::GetNamespace(CFX_ByteStringL &nameSpace, FX_BOOL bQualified) const
|
| -{
|
| - IFX_Allocator* pAllocator = m_Children.m_pAllocator;
|
| - if (bQualified) {
|
| - nameSpace.Set(m_QSpaceName, pAllocator);
|
| - return;
|
| - }
|
| - GetNamespaceURI(m_QSpaceName, nameSpace);
|
| -}
|
| CFX_ByteString CXML_Element::GetNamespaceURI(FX_BSTR qName) const
|
| {
|
| - const CFX_WideStringL* pwsSpace;
|
| + const CFX_WideString* pwsSpace;
|
| const CXML_Element *pElement = this;
|
| do {
|
| if (qName.IsEmpty()) {
|
| @@ -730,26 +650,6 @@ CFX_ByteString CXML_Element::GetNamespaceURI(FX_BSTR qName) const
|
| } while(pElement);
|
| return pwsSpace ? FX_UTF8Encode(*pwsSpace) : CFX_ByteString();
|
| }
|
| -void CXML_Element::GetNamespaceURI(FX_BSTR qName, CFX_ByteStringL &uri) const
|
| -{
|
| - IFX_Allocator* pAllocator = m_Children.m_pAllocator;
|
| - const CFX_WideStringL* pwsSpace;
|
| - const CXML_Element *pElement = this;
|
| - do {
|
| - if (qName.IsEmpty()) {
|
| - pwsSpace = pElement->m_AttrMap.Lookup(FX_BSTRC(""), FX_BSTRC("xmlns"));
|
| - } else {
|
| - pwsSpace = pElement->m_AttrMap.Lookup(FX_BSTRC("xmlns"), qName);
|
| - }
|
| - if (pwsSpace) {
|
| - break;
|
| - }
|
| - pElement = pElement->GetParent();
|
| - } while(pElement);
|
| - if (pwsSpace) {
|
| - FX_UTF8Encode(pwsSpace->GetPtr(), pwsSpace->GetLength(), uri, pAllocator);
|
| - }
|
| -}
|
| void CXML_Element::GetAttrByIndex(int index, CFX_ByteString& space, CFX_ByteString& name, CFX_WideString& value) const
|
| {
|
| if (index < 0 || index >= m_AttrMap.GetSize()) {
|
| @@ -760,17 +660,6 @@ void CXML_Element::GetAttrByIndex(int index, CFX_ByteString& space, CFX_ByteStri
|
| name = item.m_AttrName;
|
| value = item.m_Value;
|
| }
|
| -void CXML_Element::GetAttrByIndex(int index, CFX_ByteStringL &space, CFX_ByteStringL &name, CFX_WideStringL &value) const
|
| -{
|
| - if (index < 0 || index >= m_AttrMap.GetSize()) {
|
| - return;
|
| - }
|
| - IFX_Allocator* pAllocator = m_Children.m_pAllocator;
|
| - CXML_AttrItem& item = m_AttrMap.GetAt(index);
|
| - space.Set(item.m_QSpaceName, pAllocator);
|
| - name.Set(item.m_AttrName, pAllocator);
|
| - value.Set(item.m_Value, pAllocator);
|
| -}
|
| FX_BOOL CXML_Element::HasAttr(FX_BSTR name) const
|
| {
|
| CFX_ByteStringC bsSpace, bsName;
|
| @@ -781,37 +670,27 @@ FX_BOOL CXML_Element::GetAttrValue(FX_BSTR name, CFX_WideString& attribute) cons
|
| {
|
| CFX_ByteStringC bsSpace, bsName;
|
| FX_XML_SplitQualifiedName(name, bsSpace, bsName);
|
| - const CFX_WideStringL* pValue = m_AttrMap.Lookup(bsSpace, bsName);
|
| + const CFX_WideString* pValue = m_AttrMap.Lookup(bsSpace, bsName);
|
| if (pValue) {
|
| - attribute = CFX_WideString(pValue->GetPtr(), pValue->GetLength());
|
| + attribute = CFX_WideString((FX_LPCWSTR)pValue, pValue->GetLength());
|
| return TRUE;
|
| }
|
| return FALSE;
|
| }
|
| -const CFX_WideStringL* CXML_Element::GetAttrValuePtr(FX_BSTR name) const
|
| -{
|
| - CFX_ByteStringC bsSpace, bsName;
|
| - FX_XML_SplitQualifiedName(name, bsSpace, bsName);
|
| - return m_AttrMap.Lookup(bsSpace, bsName);
|
| -}
|
| FX_BOOL CXML_Element::GetAttrValue(FX_BSTR space, FX_BSTR name, CFX_WideString& attribute) const
|
| {
|
| - const CFX_WideStringL* pValue = m_AttrMap.Lookup(space, name);
|
| + const CFX_WideString* pValue = m_AttrMap.Lookup(space, name);
|
| if (pValue) {
|
| - attribute = CFX_WideString(pValue->GetPtr(), pValue->GetLength());
|
| + attribute = CFX_WideString((FX_LPCWSTR)pValue, pValue->GetLength());
|
| return TRUE;
|
| }
|
| return FALSE;
|
| }
|
| -const CFX_WideStringL* CXML_Element::GetAttrValuePtr(FX_BSTR space, FX_BSTR name) const
|
| -{
|
| - return m_AttrMap.Lookup(space, name);
|
| -}
|
| FX_BOOL CXML_Element::GetAttrInteger(FX_BSTR name, int& attribute) const
|
| {
|
| CFX_ByteStringC bsSpace, bsName;
|
| FX_XML_SplitQualifiedName(name, bsSpace, bsName);
|
| - const CFX_WideStringL* pwsValue = m_AttrMap.Lookup(bsSpace, bsName);
|
| + const CFX_WideString* pwsValue = m_AttrMap.Lookup(bsSpace, bsName);
|
| if (pwsValue) {
|
| attribute = pwsValue->GetInteger();
|
| return TRUE;
|
| @@ -820,7 +699,7 @@ FX_BOOL CXML_Element::GetAttrInteger(FX_BSTR name, int& attribute) const
|
| }
|
| FX_BOOL CXML_Element::GetAttrInteger(FX_BSTR space, FX_BSTR name, int& attribute) const
|
| {
|
| - const CFX_WideStringL* pwsValue = m_AttrMap.Lookup(space, name);
|
| + const CFX_WideString* pwsValue = m_AttrMap.Lookup(space, name);
|
| if (pwsValue) {
|
| attribute = pwsValue->GetInteger();
|
| return TRUE;
|
| @@ -835,8 +714,7 @@ FX_BOOL CXML_Element::GetAttrFloat(FX_BSTR name, FX_FLOAT& attribute) const
|
| }
|
| FX_BOOL CXML_Element::GetAttrFloat(FX_BSTR space, FX_BSTR name, FX_FLOAT& attribute) const
|
| {
|
| - CFX_WideString value;
|
| - const CFX_WideStringL* pValue = m_AttrMap.Lookup(space, name);
|
| + const CFX_WideString* pValue = m_AttrMap.Lookup(space, name);
|
| if (pValue) {
|
| attribute = pValue->GetFloat();
|
| return TRUE;
|
| @@ -868,19 +746,6 @@ CFX_WideString CXML_Element::GetContent(FX_DWORD index) const
|
| }
|
| return CFX_WideString();
|
| }
|
| -const CFX_WideStringL* CXML_Element::GetContentPtr(FX_DWORD index) const
|
| -{
|
| - index <<= 1;
|
| - if (index >= (FX_DWORD)m_Children.GetSize() ||
|
| - (ChildType)(FX_UINTPTR)m_Children.GetAt(index) != Content) {
|
| - return NULL;
|
| - }
|
| - CXML_Content* pContent = (CXML_Content*)m_Children.GetAt(index + 1);
|
| - if (pContent) {
|
| - return &pContent->m_Content;
|
| - }
|
| - return NULL;
|
| -}
|
| CXML_Element* CXML_Element::GetElement(FX_DWORD index) const
|
| {
|
| index <<= 1;
|
| @@ -935,7 +800,7 @@ FX_DWORD CXML_Element::FindElement(CXML_Element *pChild) const
|
| }
|
| return (FX_DWORD) - 1;
|
| }
|
| -const CFX_WideStringL* CXML_AttrMap::Lookup(FX_BSTR space, FX_BSTR name) const
|
| +const CFX_WideString* CXML_AttrMap::Lookup(FX_BSTR space, FX_BSTR name) const
|
| {
|
| if (m_pMap == NULL) {
|
| return NULL;
|
| @@ -948,21 +813,17 @@ const CFX_WideStringL* CXML_AttrMap::Lookup(FX_BSTR space, FX_BSTR name) const
|
| }
|
| return NULL;
|
| }
|
| -void CXML_AttrMap::SetAt(FX_BSTR space, FX_BSTR name, FX_WSTR value, IFX_Allocator* pAllocator)
|
| +void CXML_AttrMap::SetAt(FX_BSTR space, FX_BSTR name, FX_WSTR value)
|
| {
|
| - for (int i = 0; i < GetSize(); i ++) {
|
| + for (int i = 0; i < GetSize(); i++) {
|
| CXML_AttrItem& item = GetAt(i);
|
| if ((space.IsEmpty() || item.m_QSpaceName == space) && item.m_AttrName == name) {
|
| - item.m_Value.Set(value, pAllocator);
|
| + item.m_Value = value;
|
| return;
|
| }
|
| }
|
| if (!m_pMap) {
|
| - if (pAllocator) {
|
| - m_pMap = FX_NewAtAllocator(pAllocator)CFX_ObjectArray<CXML_AttrItem>(pAllocator);
|
| - } else {
|
| - m_pMap = FX_NEW CFX_ObjectArray<CXML_AttrItem>;
|
| - }
|
| + m_pMap = FX_NEW CFX_ObjectArray < CXML_AttrItem > ;
|
| }
|
| if (!m_pMap) {
|
| return;
|
| @@ -971,11 +832,11 @@ void CXML_AttrMap::SetAt(FX_BSTR space, FX_BSTR name, FX_WSTR value, IFX_Allocat
|
| if (!pItem) {
|
| return;
|
| }
|
| - pItem->m_QSpaceName.Set(space, pAllocator);
|
| - pItem->m_AttrName.Set(name, pAllocator);
|
| - pItem->m_Value.Set(value, pAllocator);
|
| + pItem->m_QSpaceName = space;
|
| + pItem->m_AttrName = name;
|
| + pItem->m_Value = value;
|
| }
|
| -void CXML_AttrMap::RemoveAt(FX_BSTR space, FX_BSTR name, IFX_Allocator* pAllocator)
|
| +void CXML_AttrMap::RemoveAt(FX_BSTR space, FX_BSTR name)
|
| {
|
| if (m_pMap == NULL) {
|
| return;
|
| @@ -983,7 +844,6 @@ void CXML_AttrMap::RemoveAt(FX_BSTR space, FX_BSTR name, IFX_Allocator* pAllocat
|
| for (int i = 0; i < m_pMap->GetSize(); i ++) {
|
| CXML_AttrItem& item = GetAt(i);
|
| if ((space.IsEmpty() || item.m_QSpaceName == space) && item.m_AttrName == name) {
|
| - item.Empty(pAllocator);
|
| m_pMap->RemoveAt(i);
|
| return;
|
| }
|
| @@ -998,20 +858,15 @@ CXML_AttrItem& CXML_AttrMap::GetAt(int index) const
|
| ASSERT(m_pMap != NULL);
|
| return (*m_pMap)[index];
|
| }
|
| -void CXML_AttrMap::RemoveAll(IFX_Allocator* pAllocator)
|
| +void CXML_AttrMap::RemoveAll()
|
| {
|
| if (!m_pMap) {
|
| return;
|
| }
|
| for (int i = 0; i < m_pMap->GetSize(); i ++) {
|
| CXML_AttrItem& item = (*m_pMap)[i];
|
| - item.Empty(pAllocator);
|
| }
|
| m_pMap->RemoveAll();
|
| - if (pAllocator) {
|
| - FX_DeleteAtAllocator(m_pMap, pAllocator, CFX_ObjectArray<CXML_AttrItem>);
|
| - } else {
|
| - delete m_pMap;
|
| - }
|
| + delete m_pMap;
|
| m_pMap = NULL;
|
| }
|
|
|