_removedChildren[i]->_parent = 0;
delete _path_cache;
clearValue();
- delete _listeners;
+
+ if (_listeners) {
+ vector<SGPropertyChangeListener*>::iterator it;
+ for (it = _listeners->begin(); it != _listeners->end(); ++it)
+ (*it)->unregister_property(this);
+ delete _listeners;
+ }
}
SGPropertyNode::removeChild (int pos, bool keep)
{
SGPropertyNode_ptr node;
- if (pos < 0 || pos >= _children.size())
+ if (pos < 0 || pos >= (int)_children.size())
return node;
vector<SGPropertyNode_ptr>::iterator it = _children.begin();