diff options
Diffstat (limited to 'val.c')
-rw-r--r-- | val.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -98,6 +98,16 @@ void objarr_insert(State *S, ObjArr *arr, size_t ix, Val v) { arr->d[ix] = v; } } +void objarr_delete(State *S, ObjArr *arr, size_t ix) { + CHECK(ix < arr->len, "array index out of bounds"); + if (ix < arr->len - 1) { + size_t nix = ix+1; + size_t n = arr->len - nix; + memmove(&arr->d[ix], &arr->d[ix+1], n*sizeof(Val)); + } + arr->len --; +} + static void print_val_h(Val v, int depth); void print_val(Val v) { |