summaryrefslogtreecommitdiff
path: root/cpp/src/IceXML
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2015-11-20 12:16:23 -0800
committerMark Spruiell <mes@zeroc.com>2015-11-20 12:16:23 -0800
commitb6e1eea1effa80b8dee71168c75d476b90370f35 (patch)
tree8d30a318e227374af7ed0f6b2689fa152225dbb7 /cpp/src/IceXML
parentReworked IceStorm and IceGrid database error handling (diff)
downloadice-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.cpp28
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;
};