aboutsummaryrefslogtreecommitdiff
path: root/deque.c
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2021-12-29 10:48:03 +0100
committerThomas Schmucker <ts@its1.de>2021-12-29 10:48:03 +0100
commit6ced2a50056acbf7caec404a1edfa3b07fa1ac5d (patch)
treeef9d4e6bcf9797b74e13ddbf943f424ac1d49664 /deque.c
parent87e013bc707860a6f299a2ee3866965a4fae12be (diff)
downloaddata-structures-6ced2a50056acbf7caec404a1edfa3b07fa1ac5d.tar.gz
data-structures-6ced2a50056acbf7caec404a1edfa3b07fa1ac5d.tar.bz2
data-structures-6ced2a50056acbf7caec404a1edfa3b07fa1ac5d.zip
feat: remove NULL-checks
Diffstat (limited to 'deque.c')
-rw-r--r--deque.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/deque.c b/deque.c
index eec6f42..881d1d3 100644
--- a/deque.c
+++ b/deque.c
@@ -39,7 +39,7 @@ allocate(size_t n, size_t sz)
39void 39void
40deque_init(struct deque *d) 40deque_init(struct deque *d)
41{ 41{
42 assert(d != NULL); 42 assert(d);
43 43
44 d->map_begin = 0; 44 d->map_begin = 0;
45 d->map_end = 0; 45 d->map_end = 0;
@@ -48,7 +48,7 @@ deque_init(struct deque *d)
48 48
49 // TODO: Error handling 49 // TODO: Error handling
50 d->map = allocate(START_MAP_CAPACITY, sizeof *d->map); 50 d->map = allocate(START_MAP_CAPACITY, sizeof *d->map);
51 if ( d->map != NULL ) { 51 if ( d->map ) {
52 d->map_capacity = START_MAP_CAPACITY; 52 d->map_capacity = START_MAP_CAPACITY;
53 53
54 for ( size_t i = 0; i != d->map_capacity; ++i ) { 54 for ( size_t i = 0; i != d->map_capacity; ++i ) {
@@ -62,7 +62,7 @@ deque_init(struct deque *d)
62void 62void
63deque_free(struct deque *d) 63deque_free(struct deque *d)
64{ 64{
65 assert(d != NULL); 65 assert(d);
66 66
67 // free all chunks 67 // free all chunks
68 for ( size_t i = 0; i != d->map_capacity; ++i ) { 68 for ( size_t i = 0; i != d->map_capacity; ++i ) {
@@ -79,7 +79,7 @@ deque_free(struct deque *d)
79size_t 79size_t
80deque_size(struct deque *d) 80deque_size(struct deque *d)
81{ 81{
82 assert(d != NULL); 82 assert(d);
83 83
84 return d->size; 84 return d->size;
85} 85}
@@ -89,7 +89,7 @@ deque_size(struct deque *d)
89bool 89bool
90deque_is_empty(struct deque *d) 90deque_is_empty(struct deque *d)
91{ 91{
92 assert(d != NULL); 92 assert(d);
93 93
94 return d->map_begin == d->map_end; 94 return d->map_begin == d->map_end;
95} 95}
@@ -99,7 +99,7 @@ deque_is_empty(struct deque *d)
99static void 99static void
100grow_map(struct deque *d) 100grow_map(struct deque *d)
101{ 101{
102 assert(d != NULL); 102 assert(d);
103 103
104 const size_t capacity = d->map_capacity + d->map_capacity / 2; 104 const size_t capacity = d->map_capacity + d->map_capacity / 2;
105 T ** map = allocate(capacity, sizeof *map); 105 T ** map = allocate(capacity, sizeof *map);
@@ -135,7 +135,7 @@ grow_map(struct deque *d)
135static void 135static void
136map_append_chunk(struct deque *d) 136map_append_chunk(struct deque *d)
137{ 137{
138 assert(d != NULL); 138 assert(d);
139 139
140 size_t next = (d->map_end + 1) % d->map_capacity; 140 size_t next = (d->map_end + 1) % d->map_capacity;
141 141
@@ -154,7 +154,7 @@ map_append_chunk(struct deque *d)
154static void 154static void
155map_prepend_chunk(struct deque *d) 155map_prepend_chunk(struct deque *d)
156{ 156{
157 assert(d != NULL); 157 assert(d);
158 158
159 size_t prev = (d->map_begin + d->map_capacity - 1) % d->map_capacity; 159 size_t prev = (d->map_begin + d->map_capacity - 1) % d->map_capacity;
160 160
@@ -173,7 +173,7 @@ map_prepend_chunk(struct deque *d)
173static void 173static void
174map_remove_front_chunk(struct deque *d) 174map_remove_front_chunk(struct deque *d)
175{ 175{
176 assert(d != NULL); 176 assert(d);
177 177
178 if ( d->map_begin == d->map_end ) { 178 if ( d->map_begin == d->map_end ) {
179 return; 179 return;
@@ -192,7 +192,7 @@ map_remove_front_chunk(struct deque *d)
192static void 192static void
193map_remove_tail_chunk(struct deque *d) 193map_remove_tail_chunk(struct deque *d)
194{ 194{
195 assert(d != NULL); 195 assert(d);
196 196
197 if ( d->map_begin == d->map_end ) { 197 if ( d->map_begin == d->map_end ) {
198 return; 198 return;
@@ -211,9 +211,9 @@ map_remove_tail_chunk(struct deque *d)
211bool 211bool
212deque_get_at(struct deque *d, size_t idx, T *data) 212deque_get_at(struct deque *d, size_t idx, T *data)
213{ 213{
214 assert(d != NULL); 214 assert(d);
215 assert(idx < d->size); 215 assert(idx < d->size);
216 assert(data != NULL); 216 assert(data);
217 217
218 if ( idx >= d->size ) { 218 if ( idx >= d->size ) {
219 return false; 219 return false;
@@ -233,7 +233,7 @@ deque_get_at(struct deque *d, size_t idx, T *data)
233bool 233bool
234deque_set_at(struct deque *d, size_t idx, T data) 234deque_set_at(struct deque *d, size_t idx, T data)
235{ 235{
236 assert(d != NULL); 236 assert(d);
237 assert(idx < d->size); 237 assert(idx < d->size);
238 238
239 if ( idx >= d->size ) { 239 if ( idx >= d->size ) {
@@ -254,7 +254,7 @@ deque_set_at(struct deque *d, size_t idx, T data)
254void 254void
255deque_push_back(struct deque *d, T data) 255deque_push_back(struct deque *d, T data)
256{ 256{
257 assert(d != NULL); 257 assert(d);
258 258
259 const size_t pos = d->offset + d->size; 259 const size_t pos = d->offset + d->size;
260 const size_t chunk_off = pos % CHUNK_CAPACITY; 260 const size_t chunk_off = pos % CHUNK_CAPACITY;
@@ -274,7 +274,7 @@ deque_push_back(struct deque *d, T data)
274void 274void
275deque_push_front(struct deque *d, T data) 275deque_push_front(struct deque *d, T data)
276{ 276{
277 assert(d != NULL); 277 assert(d);
278 278
279 if ( d->offset == 0 ) { // Im ersten Element ist kein Platz mehr frei! 279 if ( d->offset == 0 ) { // Im ersten Element ist kein Platz mehr frei!
280 map_prepend_chunk(d); 280 map_prepend_chunk(d);
@@ -294,8 +294,8 @@ deque_push_front(struct deque *d, T data)
294bool 294bool
295deque_pop_back(struct deque *d, T *data) 295deque_pop_back(struct deque *d, T *data)
296{ 296{
297 assert(d != NULL); 297 assert(d);
298 assert(data != NULL); 298 assert(data);
299 299
300 if ( d->size == 0 ) { 300 if ( d->size == 0 ) {
301 return false; 301 return false;
@@ -321,8 +321,8 @@ deque_pop_back(struct deque *d, T *data)
321bool 321bool
322deque_pop_front(struct deque *d, T *data) 322deque_pop_front(struct deque *d, T *data)
323{ 323{
324 assert(d != NULL); 324 assert(d);
325 assert(data != NULL); 325 assert(data);
326 326
327 if ( d->size == 0 ) { 327 if ( d->size == 0 ) {
328 return false; 328 return false;
@@ -348,7 +348,7 @@ deque_pop_front(struct deque *d, T *data)
348static void 348static void
349deque_show(struct deque *d) 349deque_show(struct deque *d)
350{ 350{
351 assert(d != NULL); 351 assert(d);
352 352
353 printf("first: %zu -- last: %zu -- size: %zu -- map_capacity: %zu -- offset: %zu\n", 353 printf("first: %zu -- last: %zu -- size: %zu -- map_capacity: %zu -- offset: %zu\n",
354 d->map_begin, d->map_end, d->size, d->map_capacity, d->offset); 354 d->map_begin, d->map_end, d->size, d->map_capacity, d->offset);