Make global static children variable an xml node object variable.
authorSampo Savolainen <v2@iki.fi>
Mon, 11 Aug 2008 16:04:27 +0000 (16:04 +0000)
committerSampo Savolainen <v2@iki.fi>
Mon, 11 Aug 2008 16:04:27 +0000 (16:04 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3683 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/pbd/pbd/xml++.h
libs/pbd/xml++.cc

index bf26a6f685fb3ae0b4cf7e07654508cf6bd8b30f..f98f7854d1c14e5121aa967a70bdda7439b3ee62 100644 (file)
@@ -73,6 +73,7 @@ private:
   XMLNodeList _children;
   XMLPropertyList _proplist;
   XMLPropertyMap _propmap;
+  mutable XMLNodeList _selected_children;
 
 public:
   XMLNode(const string &);
index 5507f658e9329f5ea6e751937c96856f2b183568..942727a04105b559d18002aa81395c15589f375e 100644 (file)
@@ -241,22 +241,21 @@ XMLNode::children(const string& n) const
 {
        /* returns all children matching name */
 
-       static XMLNodeList retval;
        XMLNodeConstIterator cur;
        
        if (n.empty()) {
                return _children;
        }
-           
-       retval.erase(retval.begin(), retval.end());
+
+       _selected_children.clear();
        
        for (cur = _children.begin(); cur != _children.end(); ++cur) {
                if ((*cur)->name() == n) {
-                       retval.insert(retval.end(), *cur);
+                       _selected_children.insert(_selected_children.end(), *cur);
                }
        }
            
-       return retval;
+       return _selected_children;
 }
 
 XMLNode *