| 85 | } |
| 86 | |
| 87 | bool hc_vector_delete(struct hc_vector *v, const size_t i, const size_t n) { |
| 88 | const size_t m = i+n; |
| 89 | assert(m <= v->length); |
| 90 | |
| 91 | if (m < v->length) { |
| 92 | uint8_t *const p = hc_vector_get(v, i); |
| 93 | memmove(p, p + n*v->item_size, i + (v->length-n) * v->item_size); |
| 94 | } |
| 95 | |
| 96 | v->length -= n; |
| 97 | v->end -= n*v->item_size; |
| 98 | return true; |
| 99 | } |