From 7804b57632e3e4eb57971f2a95fa873ef11866ea Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 8 May 2004 19:34:06 +0000 Subject: Added default iterator constructor, for convenience svn-id: r13808 --- common/list.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'common') diff --git a/common/list.h b/common/list.h index b21bc5e862..2e8403c9dc 100644 --- a/common/list.h +++ b/common/list.h @@ -50,31 +50,37 @@ protected: struct Iterator { NodeBase *_node; + Iterator() : _node(0) {} Iterator(NodeBase *node) : _node(node) {} // Prefix inc Iterator &operator++() { - _node = _node->_next; + if (_node) + _node = _node->_next; return *this; } // Postfix inc Iterator operator++(int) { Iterator tmp = *this; - _node = _node->_next; + if (_node) + _node = _node->_next; return tmp; } // Prefix dec Iterator &operator--() { - _node = _node->_prev; + if (_node) + _node = _node->_prev; return *this; } // Postfix dec Iterator operator--(int) { Iterator tmp = *this; - _node = _node->_prev; + if (_node) + _node = _node->_prev; return tmp; } T2& operator*() const { + assert(_node); return static_cast*>(_node)->_data; } T2* operator->() const { -- cgit v1.2.3