summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-04-29 00:17:48 +0100
committerDamien George <damien.p.george@gmail.com>2015-04-29 00:17:48 +0100
commitad9daadf8aa3b3e07abad3a85520624cef62911a (patch)
tree0c79ba4ab0c04e253fa83cb961c7049dca2a53a8
parent95f53461c2c42490d12acd41463b86f0056e6f40 (diff)
downloadmicropython-ad9daadf8aa3b3e07abad3a85520624cef62911a.tar.gz
micropython-ad9daadf8aa3b3e07abad3a85520624cef62911a.zip
py: Fix attrtuple array length in print and creation.
-rw-r--r--py/objattrtuple.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/py/objattrtuple.c b/py/objattrtuple.c
index b3fa314489..04c17a2c64 100644
--- a/py/objattrtuple.c
+++ b/py/objattrtuple.c
@@ -34,7 +34,7 @@ STATIC
#endif
void mp_obj_attrtuple_print_helper(const mp_print_t *print, const qstr *fields, mp_obj_tuple_t *o) {
mp_print_str(print, "(");
- for (mp_uint_t i = 0; i < (o->len - 1); i++) {
+ for (mp_uint_t i = 0; i < o->len; i++) {
if (i > 0) {
mp_print_str(print, ", ");
}
@@ -51,7 +51,7 @@ void mp_obj_attrtuple_print_helper(const mp_print_t *print, const qstr *fields,
STATIC void mp_obj_attrtuple_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t kind) {
(void)kind;
mp_obj_tuple_t *o = o_in;
- const qstr *fields = (const qstr*)o->items[o->len - 1];
+ const qstr *fields = (const qstr*)o->items[o->len];
mp_obj_attrtuple_print_helper(print, fields, o);
}
@@ -71,8 +71,9 @@ STATIC void mp_obj_attrtuple_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
}
mp_obj_t mp_obj_new_attrtuple(const qstr *fields, mp_uint_t n, const mp_obj_t *items) {
- mp_obj_tuple_t *o = mp_obj_new_tuple(n + 1, NULL);
+ mp_obj_tuple_t *o = m_new_obj_var(mp_obj_tuple_t, mp_obj_t, n + 1);
o->base.type = &mp_type_attrtuple;
+ o->len = n;
for (mp_uint_t i = 0; i < n; i++) {
o->items[i] = items[i];
}