diff options
author | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2010-07-10 15:48:34 +0000 |
---|---|---|
committer | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2010-07-10 15:48:34 +0000 |
commit | f4cb6eb737cd22c355cb3b3b4f5f1ef215a8576b (patch) | |
tree | 081f5b5b4ac36aa9cee72d9eedf6c8264ab9a755 /src | |
parent | df42996eab0dc38bd29eecb6dcb9ab83dd981dc3 (diff) |
XPath: Out-of-bounds xpath_node_set access is now undefined
git-svn-id: http://pugixml.googlecode.com/svn/trunk@581 99668b35-9821-0410-8761-19e4c4f06640
Diffstat (limited to 'src')
-rw-r--r-- | src/pugixml.hpp | 2 | ||||
-rw-r--r-- | src/pugixpath.cpp | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/pugixml.hpp b/src/pugixml.hpp index dacd8cd..b87aeb4 100644 --- a/src/pugixml.hpp +++ b/src/pugixml.hpp @@ -2215,7 +2215,7 @@ namespace pugi * \param index - requested index
* \return element
*/
- xpath_node operator[](size_t index) const;
+ const xpath_node& operator[](size_t index) const;
/**
* Get begin constant iterator for collection
diff --git a/src/pugixpath.cpp b/src/pugixpath.cpp index 6239ed2..80368ff 100644 --- a/src/pugixpath.cpp +++ b/src/pugixpath.cpp @@ -792,9 +792,10 @@ namespace pugi return size() == 0;
}
- xpath_node xpath_node_set::operator[](size_t index) const
+ const xpath_node& xpath_node_set::operator[](size_t index) const
{
- return (index >= size()) ? xpath_node() : m_begin[index];
+ assert(index < size());
+ return m_begin[index];
}
xpath_node_set::iterator xpath_node_set::mut_begin()
|