Instead of returning a bool (which everyone ignored) pop asserts

This commit is contained in:
Jesse Jones 2012-12-08 21:45:43 -08:00 committed by Brian Anderson
parent 6bab226fc5
commit eca23da98b

View File

@ -35,7 +35,7 @@ public:
size_t size() const; size_t size() const;
int32_t append(T value); int32_t append(T value);
int32_t push(T value); int32_t push(T value);
bool pop(T *value); void pop(T *value);
bool replace(T old_value, T new_value); bool replace(T old_value, T new_value);
int32_t index_of(T value) const; int32_t index_of(T value) const;
bool is_empty() const; bool is_empty() const;
@ -81,17 +81,14 @@ array_list<T>::push(T value) {
return _size - 1; return _size - 1;
} }
template<typename T> bool template<typename T> void
array_list<T>::pop(T *value) { array_list<T>::pop(T *value) {
if (_size == 0) { assert(_size > 0);
return false;
}
if (value != NULL) { if (value != NULL) {
*value = _data[-- _size]; *value = _data[-- _size];
} else { } else {
-- _size; -- _size;
} }
return true;
} }
/** /**