diff options
author | Robin Gareus <robin@gareus.org> | 2016-10-29 17:03:34 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-10-29 19:57:43 +0200 |
commit | 06700cb2f48b8da62b56d5cce4deb50cac029e6a (patch) | |
tree | a67657006284f09d8bac88f3e7594c6a3fec8553 /libs/pbd/xml++.cc | |
parent | 5ed764178a7ff43d30ced21ffa8d5f36c64074c8 (diff) |
Allow to construct a XML tree from a text buffer
Diffstat (limited to 'libs/pbd/xml++.cc')
-rw-r--r-- | libs/pbd/xml++.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/libs/pbd/xml++.cc b/libs/pbd/xml++.cc index e19a5ab244..dbe6d51e0d 100644 --- a/libs/pbd/xml++.cc +++ b/libs/pbd/xml++.cc @@ -120,7 +120,7 @@ XMLTree::read_internal(bool validate) } bool -XMLTree::read_buffer(const string& buffer) +XMLTree::read_buffer(const string& buffer, bool to_tree_doc) { xmlDocPtr doc; @@ -135,7 +135,14 @@ XMLTree::read_buffer(const string& buffer) } _root = readnode(xmlDocGetRootElement(doc)); - xmlFreeDoc(doc); + if (to_tree_doc) { + if (_doc) { + xmlFreeDoc (_doc); + } + _doc = doc; + } else { + xmlFreeDoc (doc); + } return true; } |