File tree Expand file tree Collapse file tree 2 files changed +10
-3
lines changed
branches/try2/src/rt/util Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ refs/heads/snap-stage3: eb8fd119c65c67f3b1b8268cc7341c22d39b7b61
5
5
refs/heads/try: d324a424d8f84b1eb049b12cf34182bda91b0024
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
- refs/heads/try2: cf1c3d2da0cb6ebc4c34c122cde3a76523417ed4
8
+ refs/heads/try2: 6bab226fc59f5bd011e243b5a4ec18adcbefdd58
9
9
refs/heads/incoming: d9317a174e434d4c99fc1a37fd7dc0d2f5328d37
10
10
refs/heads/dist-snap: 22efa39382d41b084fde1719df7ae8ce5697d8c9
11
11
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
Original file line number Diff line number Diff line change 14
14
15
15
#include < inttypes.h>
16
16
#include < stddef.h>
17
+ #include < new>
17
18
18
19
/* *
19
20
* A simple, resizable array list. Note that this only works with POD types
@@ -69,8 +70,12 @@ array_list<T>::append(T value) {
69
70
template <typename T> int32_t
70
71
array_list<T>::push(T value) {
71
72
if (_size == _capacity) {
72
- _capacity = _capacity * 2 ;
73
- _data = (T *) realloc (_data, _capacity * sizeof (T));
73
+ size_t new_capacity = _capacity * 2 ;
74
+ void * buffer = realloc (_data, new_capacity * sizeof (T));
75
+ if (buffer == NULL )
76
+ throw std::bad_alloc ();
77
+ _data = (T *) buffer;
78
+ _capacity = new_capacity;
74
79
}
75
80
_data[_size ++] = value;
76
81
return _size - 1 ;
@@ -115,11 +120,13 @@ array_list<T>::index_of(T value) const {
115
120
116
121
template <typename T> T &
117
122
array_list<T>::operator [](size_t index) {
123
+ assert (index < size ());
118
124
return _data[index];
119
125
}
120
126
121
127
template <typename T> const T &
122
128
array_list<T>::operator [](size_t index) const {
129
+ assert (index < size ());
123
130
return _data[index];
124
131
}
125
132
You can’t perform that action at this time.
0 commit comments