diff options
| author | Thomas Schmucker <ts@its1.de> | 2021-12-29 10:48:03 +0100 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2021-12-29 10:48:03 +0100 |
| commit | 6ced2a50056acbf7caec404a1edfa3b07fa1ac5d (patch) | |
| tree | ef9d4e6bcf9797b74e13ddbf943f424ac1d49664 /deque.c | |
| parent | 87e013bc707860a6f299a2ee3866965a4fae12be (diff) | |
| download | data-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.c | 40 |
1 files changed, 20 insertions, 20 deletions
| @@ -39,7 +39,7 @@ allocate(size_t n, size_t sz) | |||
| 39 | void | 39 | void |
| 40 | deque_init(struct deque *d) | 40 | deque_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) | |||
| 62 | void | 62 | void |
| 63 | deque_free(struct deque *d) | 63 | deque_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) | |||
| 79 | size_t | 79 | size_t |
| 80 | deque_size(struct deque *d) | 80 | deque_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) | |||
| 89 | bool | 89 | bool |
| 90 | deque_is_empty(struct deque *d) | 90 | deque_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) | |||
| 99 | static void | 99 | static void |
| 100 | grow_map(struct deque *d) | 100 | grow_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) | |||
| 135 | static void | 135 | static void |
| 136 | map_append_chunk(struct deque *d) | 136 | map_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) | |||
| 154 | static void | 154 | static void |
| 155 | map_prepend_chunk(struct deque *d) | 155 | map_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) | |||
| 173 | static void | 173 | static void |
| 174 | map_remove_front_chunk(struct deque *d) | 174 | map_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) | |||
| 192 | static void | 192 | static void |
| 193 | map_remove_tail_chunk(struct deque *d) | 193 | map_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) | |||
| 211 | bool | 211 | bool |
| 212 | deque_get_at(struct deque *d, size_t idx, T *data) | 212 | deque_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) | |||
| 233 | bool | 233 | bool |
| 234 | deque_set_at(struct deque *d, size_t idx, T data) | 234 | deque_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) | |||
| 254 | void | 254 | void |
| 255 | deque_push_back(struct deque *d, T data) | 255 | deque_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) | |||
| 274 | void | 274 | void |
| 275 | deque_push_front(struct deque *d, T data) | 275 | deque_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) | |||
| 294 | bool | 294 | bool |
| 295 | deque_pop_back(struct deque *d, T *data) | 295 | deque_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) | |||
| 321 | bool | 321 | bool |
| 322 | deque_pop_front(struct deque *d, T *data) | 322 | deque_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) | |||
| 348 | static void | 348 | static void |
| 349 | deque_show(struct deque *d) | 349 | deque_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); |
