diff options
Diffstat (limited to 'src/xml/simple-node.cpp')
| -rw-r--r-- | src/xml/simple-node.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/xml/simple-node.cpp b/src/xml/simple-node.cpp index c8b0828c4..554752941 100644 --- a/src/xml/simple-node.cpp +++ b/src/xml/simple-node.cpp @@ -165,6 +165,8 @@ SimpleNode::SimpleNode(int code) this->_document = NULL; this->_parent = this->_next = NULL; this->_first_child = this->_last_child = NULL; + + _observers.add(_subtree_observers); } SimpleNode::SimpleNode(SimpleNode const &node) @@ -199,6 +201,8 @@ SimpleNode::SimpleNode(SimpleNode const &node) { _attributes = cons(*iter, _attributes); } + + _observers.add(_subtree_observers); } gchar const *SimpleNode::name() const { @@ -267,6 +271,16 @@ bool SimpleNode::matchAttributeName(gchar const *partial_name) const { return false; } +void SimpleNode::_setParent(Node *parent) { + if (_parent) { + _subtree_observers.remove(_parent->_subtreeObservers()); + } + _parent = parent; + if (parent) { + _subtree_observers.add(parent->_subtreeObservers()); + } +} + void SimpleNode::setContent(gchar const *content) { ptr_shared<char> old_content=_content; ptr_shared<char> new_content = ( content ? share_string(content) : ptr_shared<char>() ); |
