diff options
author | Mark Spruiell <mes@zeroc.com> | 2015-11-20 12:16:23 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2015-11-20 12:16:23 -0800 |
commit | b6e1eea1effa80b8dee71168c75d476b90370f35 (patch) | |
tree | 8d30a318e227374af7ed0f6b2689fa152225dbb7 /cpp/src/IceXML | |
parent | Reworked IceStorm and IceGrid database error handling (diff) | |
download | ice-b6e1eea1effa80b8dee71168c75d476b90370f35.tar.bz2 ice-b6e1eea1effa80b8dee71168c75d476b90370f35.tar.xz ice-b6e1eea1effa80b8dee71168c75d476b90370f35.zip |
adding destroy() method to IceXML classes
Diffstat (limited to 'cpp/src/IceXML')
-rw-r--r-- | cpp/src/IceXML/Parser.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/cpp/src/IceXML/Parser.cpp b/cpp/src/IceXML/Parser.cpp index dccff6d34d5..9a32636b47e 100644 --- a/cpp/src/IceXML/Parser.cpp +++ b/cpp/src/IceXML/Parser.cpp @@ -126,6 +126,12 @@ IceXML::Node::addChild(const NodePtr&) return false; } +void +IceXML::Node::destroy() +{ + _parent = 0; +} + int IceXML::Node::getLine() const { @@ -181,6 +187,16 @@ IceXML::Element::addChild(const NodePtr& child) return true; } +void +IceXML::Element::destroy() +{ + Node::destroy(); + for(NodeList::iterator p = _children.begin(); p != _children.end(); ++p) + { + (*p)->destroy(); + } +} + // // Text // @@ -218,6 +234,16 @@ IceXML::Document::addChild(const NodePtr& child) return true; } +void +IceXML::Document::destroy() +{ + Node::destroy(); + for(NodeList::iterator p = _children.begin(); p != _children.end(); ++p) + { + (*p)->destroy(); + } +} + // // Handler // @@ -242,6 +268,7 @@ namespace IceXML class DocumentBuilder : public Handler { public: + DocumentBuilder(); virtual void startElement(const string&, const Attributes&, int, int); @@ -251,6 +278,7 @@ public: DocumentPtr getDocument() const; private: + list<NodePtr> _nodeStack; DocumentPtr _document; }; |