XPath: Added xpath_node_set constructor, redesigned evaluation memory management (alternating stacks instead of heap)

git-svn-id: http://pugixml.googlecode.com/svn/trunk@722 99668b35-9821-0410-8761-19e4c4f06640
This commit is contained in:
arseny.kapoulkine 2010-09-13 18:37:51 +00:00
parent 7709a32b09
commit 000b421873
2 changed files with 774 additions and 467 deletions

File diff suppressed because it is too large Load diff

View file

@ -2068,8 +2068,6 @@ namespace pugi
*/
class PUGIXML_CLASS xpath_node_set
{
friend class xpath_ast_node;
public:
/// Collection type
enum type_t
@ -2089,20 +2087,9 @@ namespace pugi
xpath_node* _begin;
xpath_node* _end;
xpath_node* _eos;
typedef xpath_node* iterator;
iterator mut_begin();
void _assign(const_iterator begin, const_iterator end);
void push_back(const xpath_node& n);
void append(const_iterator begin, const_iterator end);
void truncate(iterator it);
void remove_duplicates();
public:
/**
* Default constructor
@ -2110,6 +2097,11 @@ namespace pugi
*/
xpath_node_set();
/**
* Constructor from contents
*/
xpath_node_set(const_iterator begin, const_iterator end, type_t type = type_unsorted);
/**
* Destructor
*/