| Index: xfa/fgas/crt/fgas_utils.h
|
| diff --git a/xfa/fgas/crt/fgas_utils.h b/xfa/fgas/crt/fgas_utils.h
|
| index ab94f6ed40882b5463676e5e54ef6e06ed9b85c5..24224a02f07d129a999020d109520e071f32c8b7 100644
|
| --- a/xfa/fgas/crt/fgas_utils.h
|
| +++ b/xfa/fgas/crt/fgas_utils.h
|
| @@ -12,9 +12,6 @@
|
|
|
| class FX_BASEARRAYDATA;
|
|
|
| -template <class baseType>
|
| -class CFX_CPLTree;
|
| -
|
| class CFX_BaseArray : public CFX_Target {
|
| protected:
|
| CFX_BaseArray(int32_t iGrowSize, int32_t iBlockSize);
|
| @@ -496,243 +493,4 @@ class CFX_ObjectStackTemplate : public CFX_BaseStack {
|
| }
|
| };
|
|
|
| -template <class baseType>
|
| -class CFX_CPLTreeNode : public CFX_Target {
|
| - public:
|
| - typedef CFX_CPLTreeNode<baseType> CPLTreeNode;
|
| - CFX_CPLTreeNode()
|
| - : m_pParentNode(NULL),
|
| - m_pChildNode(NULL),
|
| - m_pPrevNode(NULL),
|
| - m_pNextNode(NULL),
|
| - m_Data() {}
|
| - enum TreeNode {
|
| - Root = 0,
|
| - Parent,
|
| - FirstSibling,
|
| - PreviousSibling,
|
| - NextSibling,
|
| - LastSibling,
|
| - FirstNeighbor,
|
| - PreviousNeighbor,
|
| - NextNeighbor,
|
| - LastNeighbor,
|
| - FirstChild,
|
| - LastChild
|
| - };
|
| - CPLTreeNode* GetNode(TreeNode eNode) const {
|
| - switch (eNode) {
|
| - case Root: {
|
| - CPLTreeNode* pParent = (CPLTreeNode*)this;
|
| - CPLTreeNode* pTemp;
|
| - while ((pTemp = pParent->m_pParentNode) != NULL) {
|
| - pParent = pTemp;
|
| - }
|
| - return pParent;
|
| - }
|
| - case Parent:
|
| - return m_pParentNode;
|
| - case FirstSibling: {
|
| - CPLTreeNode* pNode = (CPLTreeNode*)this;
|
| - CPLTreeNode* pTemp;
|
| - while ((pTemp = pNode->m_pPrevNode) != NULL) {
|
| - pNode = pTemp;
|
| - }
|
| - return pNode == (CPLTreeNode*)this ? NULL : pNode;
|
| - }
|
| - case PreviousSibling:
|
| - return m_pPrevNode;
|
| - case NextSibling:
|
| - return m_pNextNode;
|
| - case LastSibling: {
|
| - CPLTreeNode* pNode = (CPLTreeNode*)this;
|
| - CPLTreeNode* pTemp;
|
| - while ((pTemp = pNode->m_pNextNode) != NULL) {
|
| - pNode = pTemp;
|
| - }
|
| - return pNode == (CPLTreeNode*)this ? NULL : pNode;
|
| - }
|
| - case FirstNeighbor: {
|
| - CPLTreeNode* pParent = (CPLTreeNode*)this;
|
| - CPLTreeNode* pTemp;
|
| - while ((pTemp = pParent->m_pParentNode) != NULL) {
|
| - pParent = pTemp;
|
| - }
|
| - return pParent == (CPLTreeNode*)this ? NULL : pParent;
|
| - }
|
| - case PreviousNeighbor: {
|
| - if (m_pPrevNode == NULL) {
|
| - return m_pParentNode;
|
| - }
|
| - CPLTreeNode* pNode = m_pPrevNode;
|
| - CPLTreeNode* pTemp;
|
| - while ((pTemp = pNode->m_pChildNode) != NULL) {
|
| - pNode = pTemp;
|
| - while ((pTemp = pNode->m_pNextNode) != NULL) {
|
| - pNode = pTemp;
|
| - }
|
| - }
|
| - return pNode;
|
| - }
|
| - case NextNeighbor: {
|
| - if (m_pChildNode != NULL) {
|
| - return m_pChildNode;
|
| - }
|
| - if (m_pNextNode != NULL) {
|
| - return m_pNextNode;
|
| - }
|
| - CPLTreeNode* pNode = m_pParentNode;
|
| - while (pNode != NULL) {
|
| - if (pNode->m_pNextNode != NULL) {
|
| - return pNode->m_pNextNode;
|
| - }
|
| - pNode = pNode->m_pParentNode;
|
| - }
|
| - return NULL;
|
| - }
|
| - case LastNeighbor: {
|
| - CPLTreeNode* pNode = (CPLTreeNode*)this;
|
| - CPLTreeNode* pTemp;
|
| - while ((pTemp = pNode->m_pParentNode) != NULL) {
|
| - pNode = pTemp;
|
| - }
|
| - while (TRUE) {
|
| - CPLTreeNode* pTemp;
|
| - while ((pTemp = pNode->m_pNextNode) != NULL) {
|
| - pNode = pTemp;
|
| - }
|
| - if (pNode->m_pChildNode == NULL) {
|
| - break;
|
| - }
|
| - pNode = pNode->m_pChildNode;
|
| - }
|
| - return pNode == (CPLTreeNode*)this ? NULL : pNode;
|
| - }
|
| - case FirstChild:
|
| - return m_pChildNode;
|
| - case LastChild: {
|
| - if (m_pChildNode == NULL) {
|
| - return NULL;
|
| - }
|
| - CPLTreeNode* pChild = m_pChildNode;
|
| - CPLTreeNode* pTemp;
|
| - while ((pTemp = pChild->m_pNextNode) != NULL) {
|
| - pChild = pTemp;
|
| - }
|
| - return pChild;
|
| - }
|
| - default:
|
| - break;
|
| - }
|
| - return NULL;
|
| - }
|
| - void SetParentNode(CPLTreeNode* pNode) { m_pParentNode = pNode; }
|
| - int32_t CountChildNodes() const {
|
| - int32_t iCount = 0;
|
| - CPLTreeNode* pNode = m_pChildNode;
|
| - while (pNode) {
|
| - iCount++;
|
| - pNode = pNode->m_pNextNode;
|
| - }
|
| - return iCount;
|
| - }
|
| - CPLTreeNode* GetChildNode(int32_t iIndex) const {
|
| - int32_t iCount = 0;
|
| - CPLTreeNode* pNode = m_pChildNode;
|
| - while (pNode) {
|
| - if (iIndex == iCount) {
|
| - return pNode;
|
| - }
|
| - iCount++;
|
| - pNode = pNode->m_pNextNode;
|
| - }
|
| - return NULL;
|
| - }
|
| - int32_t GetNodeIndex() const {
|
| - int32_t index = 0;
|
| - CPLTreeNode* pNode = m_pPrevNode;
|
| - while (pNode != NULL) {
|
| - index++;
|
| - pNode = pNode->m_pPrevNode;
|
| - }
|
| - return index;
|
| - }
|
| - FX_BOOL IsParentNode(const CPLTreeNode* pNode) const {
|
| - CPLTreeNode* pParent = m_pParentNode;
|
| - while (pParent != NULL) {
|
| - if (pParent == pNode) {
|
| - return TRUE;
|
| - }
|
| - pParent = pParent->GetTreeNode(Parent);
|
| - }
|
| - return FALSE;
|
| - }
|
| - FX_BOOL IsChildNode(const CPLTreeNode* pNode) const {
|
| - if (pNode == NULL) {
|
| - return FALSE;
|
| - }
|
| - return pNode->IsParentNode((const CPLTreeNode*)this);
|
| - }
|
| - void SetChildNode(CPLTreeNode* pNode) { m_pChildNode = pNode; }
|
| - void SetPrevNode(CPLTreeNode* pNode) { m_pPrevNode = pNode; }
|
| - void SetNextNode(CPLTreeNode* pNode) { m_pNextNode = pNode; }
|
| - int32_t GetNodeLevel() const {
|
| - int32_t iLevel = 0;
|
| - CPLTreeNode* pNode = (CPLTreeNode*)this;
|
| - while ((pNode = pNode->m_pParentNode) != NULL) {
|
| - iLevel++;
|
| - }
|
| - return iLevel;
|
| - }
|
| - bool IsRootNode() const { return !m_pParentNode; }
|
| - baseType GetData() const { return m_Data; }
|
| - void SetData(baseType data) { m_Data = data; }
|
| -
|
| - protected:
|
| - CPLTreeNode* m_pParentNode;
|
| - CPLTreeNode* m_pChildNode;
|
| - CPLTreeNode* m_pPrevNode;
|
| - CPLTreeNode* m_pNextNode;
|
| - baseType m_Data;
|
| - friend class CFX_CPLTree<baseType>;
|
| -};
|
| -
|
| -template <class baseType>
|
| -class CFX_CPLTree {
|
| - public:
|
| - typedef CFX_CPLTreeNode<baseType> CPLTreeNode;
|
| - CFX_CPLTree() : m_Root() {}
|
| - ~CFX_CPLTree() {
|
| - CPLTreeNode* pNode = m_Root.GetNode(CPLTreeNode::LastNeighbor);
|
| - while (pNode != NULL) {
|
| - if (pNode->IsRootNode()) {
|
| - break;
|
| - }
|
| - CPLTreeNode* pTemp = pNode->GetNode(CPLTreeNode::PreviousNeighbor);
|
| - delete pNode;
|
| - pNode = pTemp;
|
| - }
|
| - }
|
| - CPLTreeNode* GetRoot() { return &m_Root; }
|
| - CPLTreeNode* AddChild(baseType data, CPLTreeNode* pParent = NULL) {
|
| - if (pParent == NULL) {
|
| - pParent = &m_Root;
|
| - }
|
| - CPLTreeNode* pChild = new CPLTreeNode;
|
| - pChild->SetParentNode(pParent);
|
| - pChild->SetData(data);
|
| - if (pParent->m_pChildNode == NULL) {
|
| - pParent->m_pChildNode = pChild;
|
| - } else {
|
| - CPLTreeNode* pLast = pParent->GetNode(CPLTreeNode::LastChild);
|
| - pChild->SetPrevNode(pLast);
|
| - pLast->SetNextNode(pChild);
|
| - }
|
| - return pChild;
|
| - }
|
| -
|
| - protected:
|
| - CPLTreeNode m_Root;
|
| -};
|
| -
|
| #endif // XFA_FGAS_CRT_FGAS_UTILS_H_
|
|
|