.foo[-1] = ... trips assertion (fix #490)
This commit is contained in:
1 parent
8cddb7c681
commit
2d1a75f550
2 files changed
+25
-1
No files matched your search
@@ -230,9 +230,13 @@ static jv* jvp_array_read(jv a, int i) {
|
||||
}
|
||||
|
||||
static jv* jvp_array_write(jv* a, int i) {
|
||||
assert(i >= 0);
|
||||
jvp_array* array = jvp_array_ptr(*a);
|
||||
|
||||
if (i < 0)
|
||||
i = array->length + i;
|
||||
if (i < 0)
|
||||
i = 0;
|
||||
|
||||
int pos = i + jvp_array_offset(*a);
|
||||
if (pos < array->alloc_length && jvp_refcnt_unshared(a->u.ptr)) {
|
||||
// use existing array space
|
||||
|
||||
Reference in new issue
Block a user