diff options
author | Damien George <damien.p.george@gmail.com> | 2016-04-07 09:03:33 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2016-04-07 09:03:33 +0100 |
commit | 04d5e644fcf4e0171383403e69d8fff429bba425 (patch) | |
tree | ee41dfcdc84dac347ce3acf1264c45fbaaf5537c /py/objarray.c | |
parent | 2c915e1ae61785ab6e33189581fb353ebd40d0ca (diff) | |
download | micropython-04d5e644fcf4e0171383403e69d8fff429bba425.tar.gz micropython-04d5e644fcf4e0171383403e69d8fff429bba425.zip |
py/objarray: Fix array.append so it doesn't extend if append fails.
Addresses issue #1965.
Diffstat (limited to 'py/objarray.c')
-rw-r--r-- | py/objarray.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/py/objarray.c b/py/objarray.c index da9dd528c5..bafba7623f 100644 --- a/py/objarray.c +++ b/py/objarray.c @@ -336,7 +336,9 @@ STATIC mp_obj_t array_append(mp_obj_t self_in, mp_obj_t arg) { self->items = m_renew(byte, self->items, item_sz * self->len, item_sz * (self->len + self->free)); mp_seq_clear(self->items, self->len + 1, self->len + self->free, item_sz); } - mp_binary_set_val_array(self->typecode, self->items, self->len++, arg); + mp_binary_set_val_array(self->typecode, self->items, self->len, arg); + // only update length/free if set succeeded + self->len++; self->free--; return mp_const_none; // return None, as per CPython } |