From: <vac...@us...> - 2009-02-06 22:54:56
|
Revision: 132 http://xmlwrapp.svn.sourceforge.net/xmlwrapp/?rev=132&view=rev Author: vaclavslavik Date: 2009-02-06 22:54:50 +0000 (Fri, 06 Feb 2009) Log Message: ----------- pass iterator arguments to various xml::node methods by reference instead of by value, iterators are not as cheap to copy as we'd want them Modified Paths: -------------- trunk/include/xmlwrapp/node.h trunk/src/libxml/node.cxx Modified: trunk/include/xmlwrapp/node.h =================================================================== --- trunk/include/xmlwrapp/node.h 2009-02-06 22:42:15 UTC (rev 131) +++ trunk/include/xmlwrapp/node.h 2009-02-06 22:54:50 UTC (rev 132) @@ -674,7 +674,7 @@ * @see elements(const char*) **/ //#################################################################### - iterator find (const char *name, iterator start); + iterator find (const char *name, const iterator& start); //#################################################################### /** @@ -696,7 +696,7 @@ * @see elements(const char*) const **/ //#################################################################### - const_iterator find (const char *name, const_iterator start) const; + const_iterator find (const char *name, const const_iterator& start) const; /** * Returns view of child nodes of type type_element. If no such node @@ -808,7 +808,7 @@ * @author Peter Jones **/ //#################################################################### - iterator insert (iterator position, const node &n); + iterator insert (const iterator& position, const node &n); //#################################################################### /** @@ -824,7 +824,7 @@ * @author Peter Jones **/ //#################################################################### - iterator replace (iterator old_node, const node &new_node); + iterator replace (const iterator& old_node, const node &new_node); //#################################################################### /** @@ -839,7 +839,7 @@ * @author Gary A. Passero **/ //#################################################################### - iterator erase (iterator to_erase); + iterator erase (const iterator& to_erase); //#################################################################### /** @@ -853,7 +853,7 @@ * @author Peter Jones **/ //#################################################################### - iterator erase (iterator first, iterator last); + iterator erase (iterator first, const iterator& last); //#################################################################### /** Modified: trunk/src/libxml/node.cxx =================================================================== --- trunk/src/libxml/node.cxx 2009-02-06 22:42:15 UTC (rev 131) +++ trunk/src/libxml/node.cxx 2009-02-06 22:54:50 UTC (rev 132) @@ -458,13 +458,13 @@ return end(); } //#################################################################### -xml::node::iterator xml::node::find (const char *name, iterator start) { +xml::node::iterator xml::node::find (const char *name, const iterator& start) { xmlNodePtr n = static_cast<xmlNodePtr>(start.get_raw_node()); if ( (n = find_element(name, n))) return iterator(n); return end(); } //#################################################################### -xml::node::const_iterator xml::node::find (const char *name, const_iterator start) const { +xml::node::const_iterator xml::node::find (const char *name, const const_iterator& start) const { xmlNodePtr n = static_cast<xmlNodePtr>(start.get_raw_node()); if ( (n = find_element(name, n))) return const_iterator(n); return end(); @@ -511,19 +511,19 @@ return iterator(xml::impl::node_insert(pimpl_->xmlnode_, 0, n.pimpl_->xmlnode_)); } //#################################################################### -xml::node::iterator xml::node::insert (iterator position, const node &n) { +xml::node::iterator xml::node::insert (const iterator& position, const node &n) { return iterator(xml::impl::node_insert(pimpl_->xmlnode_, static_cast<xmlNodePtr>(position.get_raw_node()), n.pimpl_->xmlnode_)); } //#################################################################### -xml::node::iterator xml::node::replace (iterator old_node, const node &new_node) { +xml::node::iterator xml::node::replace (const iterator& old_node, const node &new_node) { return iterator(xml::impl::node_replace(static_cast<xmlNodePtr>(old_node.get_raw_node()), new_node.pimpl_->xmlnode_)); } //#################################################################### -xml::node::iterator xml::node::erase (iterator to_erase) { +xml::node::iterator xml::node::erase (const iterator& to_erase) { return iterator(xml::impl::node_erase(static_cast<xmlNodePtr>(to_erase.get_raw_node()))); } //#################################################################### -xml::node::iterator xml::node::erase (iterator first, iterator last) { +xml::node::iterator xml::node::erase (iterator first, const iterator& last) { while (first != last) first = erase(first); return first; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |