Пример #1
0
        public bool release()
        {
            if (mRootNode != null)
            {
                Stack <MarkupNode> stackNode = new Stack <MarkupNode>();
                stackNode.Push(mRootNode);
                {
                    while (stackNode.Count() > 0)
                    {
                        MarkupNode        node     = stackNode.Peek();
                        List <MarkupNode> listNode = node.getChildList();

                        if (listNode.Count() > 0)
                        {
                            stackNode.Push(listNode[0]);

                            continue;
                        }

                        MarkupNode nodeDiscard = stackNode.Pop();
                        if (stackNode.Count() > 0)
                        {
                            MarkupNode nodeParent = stackNode.Peek();
                            nodeParent.removeChild(0);
                        }
                        nodeDiscard.release();
                        nodeDiscard = null;
                    }
                }

                stackNode.Clear();
                stackNode = null;
                mRootNode = null;
            }

            return(true);
        }