m_lineNo(lineNo),
m_noConversion(false)
{
+ wxASSERT_MSG ( type != wxXML_ELEMENT_NODE || content.empty(), "element nodes can't have content" );
+
if (m_parent)
{
if (m_parent->m_children)
m_attrs(NULL), m_parent(NULL),
m_children(NULL), m_next(NULL),
m_lineNo(lineNo), m_noConversion(false)
-{}
+{
+ wxASSERT_MSG ( type != wxXML_ELEMENT_NODE || content.empty(), "element nodes can't have content" );
+}
wxXmlNode::wxXmlNode(const wxXmlNode& node)
{
}
wxXmlNode::~wxXmlNode()
+{
+ DoFree();
+}
+
+wxXmlNode& wxXmlNode::operator=(const wxXmlNode& node)
+{
+ if ( &node != this )
+ {
+ DoFree();
+ DoCopy(node);
+ }
+
+ return *this;
+}
+
+void wxXmlNode::DoFree()
{
wxXmlNode *c, *c2;
for (c = m_children; c; c = c2)
}
}
-wxXmlNode& wxXmlNode::operator=(const wxXmlNode& node)
-{
- wxDELETE(m_attrs);
- wxDELETE(m_children);
- DoCopy(node);
- return *this;
-}
-
void wxXmlNode::DoCopy(const wxXmlNode& node)
{
m_type = node.m_type;