diff options
Diffstat (limited to 'src/qml/qml/ftw/qfinitestack_p.h')
-rw-r--r-- | src/qml/qml/ftw/qfinitestack_p.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/qml/qml/ftw/qfinitestack_p.h b/src/qml/qml/ftw/qfinitestack_p.h index 8b499d9b6d..6bfd353771 100644 --- a/src/qml/qml/ftw/qfinitestack_p.h +++ b/src/qml/qml/ftw/qfinitestack_p.h @@ -83,7 +83,7 @@ private: template<typename T> QFiniteStack<T>::QFiniteStack() -: _array(0), _alloc(0), _size(0) +: _array(0), _alloc(0), _size(0) { } @@ -114,6 +114,7 @@ T &QFiniteStack<T>::top() template<typename T> void QFiniteStack<T>::push(const T &o) { + Q_ASSERT(_size < _alloc); if (QTypeInfo<T>::isComplex) { new (_array + _size++) T(o); } else { @@ -124,6 +125,7 @@ void QFiniteStack<T>::push(const T &o) template<typename T> T QFiniteStack<T>::pop() { + Q_ASSERT(_size > 0); --_size; if (QTypeInfo<T>::isComplex) { @@ -134,7 +136,7 @@ T QFiniteStack<T>::pop() return _array[_size]; } } - + template<typename T> int QFiniteStack<T>::count() const { @@ -154,7 +156,7 @@ T &QFiniteStack<T>::operator[](int index) } template<typename T> -void QFiniteStack<T>::allocate(int size) +void QFiniteStack<T>::allocate(int size) { Q_ASSERT(_array == 0); Q_ASSERT(_alloc == 0); @@ -171,7 +173,7 @@ void QFiniteStack<T>::deallocate() { if (QTypeInfo<T>::isComplex) { T *i = _array + _size; - while (i != _array) + while (i != _array) (--i)->~T(); } |