summaryrefslogtreecommitdiffstatshomepage
path: root/py/objarray.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/objarray.c')
-rw-r--r--py/objarray.c87
1 files changed, 45 insertions, 42 deletions
diff --git a/py/objarray.c b/py/objarray.c
index dca41c2931..d93cce29ee 100644
--- a/py/objarray.c
+++ b/py/objarray.c
@@ -571,54 +571,55 @@ STATIC mp_int_t array_get_buffer(mp_obj_t o_in, mp_buffer_info_t *bufinfo, mp_ui
}
#if MICROPY_PY_ARRAY
-const mp_obj_type_t mp_type_array = {
- { &mp_type_type },
- .name = MP_QSTR_array,
- .print = array_print,
- .make_new = array_make_new,
- .getiter = array_iterator_new,
- .unary_op = array_unary_op,
- .binary_op = array_binary_op,
- .subscr = array_subscr,
- .buffer_p = array_get_buffer,
- .locals_dict = (mp_obj_dict_t *)&mp_obj_array_locals_dict,
-};
+MP_DEFINE_CONST_OBJ_TYPE(
+ mp_type_array,
+ MP_QSTR_array,
+ MP_TYPE_FLAG_NONE,
+ array_make_new,
+ print, array_print,
+ getiter, array_iterator_new,
+ unary_op, array_unary_op,
+ binary_op, array_binary_op,
+ subscr, array_subscr,
+ buffer, array_get_buffer,
+ locals_dict, (mp_obj_dict_t *)&mp_obj_array_locals_dict
+ );
#endif
#if MICROPY_PY_BUILTINS_BYTEARRAY
-const mp_obj_type_t mp_type_bytearray = {
- { &mp_type_type },
- .flags = MP_TYPE_FLAG_EQ_CHECKS_OTHER_TYPE,
- .name = MP_QSTR_bytearray,
- .print = array_print,
- .make_new = bytearray_make_new,
- .getiter = array_iterator_new,
- .unary_op = array_unary_op,
- .binary_op = array_binary_op,
- .subscr = array_subscr,
- .buffer = array_get_buffer,
- .locals_dict = (mp_obj_dict_t *)&mp_obj_bytearray_locals_dict,
-};
+MP_DEFINE_CONST_OBJ_TYPE(
+ mp_type_bytearray,
+ MP_QSTR_bytearray,
+ MP_TYPE_FLAG_EQ_CHECKS_OTHER_TYPE,
+ bytearray_make_new,
+ print, array_print,
+ getiter, array_iterator_new,
+ unary_op, array_unary_op,
+ binary_op, array_binary_op,
+ subscr, array_subscr,
+ buffer, array_get_buffer,
+ locals_dict, (mp_obj_dict_t *)&mp_obj_bytearray_locals_dict
+ );
#endif
#if MICROPY_PY_BUILTINS_MEMORYVIEW
-const mp_obj_type_t mp_type_memoryview = {
- { &mp_type_type },
- .flags = MP_TYPE_FLAG_EQ_CHECKS_OTHER_TYPE,
- .name = MP_QSTR_memoryview,
- .make_new = memoryview_make_new,
- .getiter = array_iterator_new,
- .unary_op = array_unary_op,
- .binary_op = array_binary_op,
+MP_DEFINE_CONST_OBJ_TYPE(
+ mp_type_memoryview,
+ MP_QSTR_memoryview,
+ MP_TYPE_FLAG_EQ_CHECKS_OTHER_TYPE,
+ memoryview_make_new,
+ getiter, array_iterator_new,
+ unary_op, array_unary_op,
+ binary_op, array_binary_op,
#if MICROPY_PY_BUILTINS_MEMORYVIEW_ITEMSIZE
- .attr = memoryview_attr,
+ attr, memoryview_attr,
#endif
#if MICROPY_PY_BUILTINS_BYTES_HEX
- .locals_dict = (mp_obj_dict_t *)&mp_obj_memoryview_locals_dict,
+ locals_dict, (mp_obj_dict_t *)&mp_obj_memoryview_locals_dict,
#endif
.subscr = array_subscr,
.buffer = array_get_buffer,
-};
+ );
#endif
/* unused
@@ -664,12 +665,14 @@ STATIC mp_obj_t array_it_iternext(mp_obj_t self_in) {
}
}
-STATIC const mp_obj_type_t mp_type_array_it = {
- { &mp_type_type },
- .name = MP_QSTR_iterator,
- .getiter = mp_identity_getiter,
- .iternext = array_it_iternext,
-};
+STATIC MP_DEFINE_CONST_OBJ_TYPE(
+ mp_type_array_it,
+ MP_QSTR_iterator,
+ MP_TYPE_FLAG_NONE,
+ MP_TYPE_NULL_MAKE_NEW,
+ getiter, mp_identity_getiter,
+ iternext, array_it_iternext
+ );
STATIC mp_obj_t array_iterator_new(mp_obj_t array_in, mp_obj_iter_buf_t *iter_buf) {
assert(sizeof(mp_obj_array_t) <= sizeof(mp_obj_iter_buf_t));