diff options
author | Damien George <damien.p.george@gmail.com> | 2014-04-26 10:47:29 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-04-26 10:47:29 +0100 |
commit | 6d3c5e4301df363055dc256e6692c610e4d0b918 (patch) | |
tree | a07a18ed1a13d50990cf0e43a2a3c919cb14240d | |
parent | d139c489bab6b58906868e3fc8383ea813a122d4 (diff) | |
download | micropython-6d3c5e4301df363055dc256e6692c610e4d0b918.tar.gz micropython-6d3c5e4301df363055dc256e6692c610e4d0b918.zip |
Add ARRAY_SIZE macro, and use it where possible.
-rw-r--r-- | py/builtin.c | 2 | ||||
-rw-r--r-- | py/builtintables.c | 8 | ||||
-rw-r--r-- | py/compile.c | 4 | ||||
-rw-r--r-- | py/emitinlinethumb.c | 4 | ||||
-rw-r--r-- | py/misc.h | 5 | ||||
-rw-r--r-- | py/modarray.c | 4 | ||||
-rw-r--r-- | py/modcmath.c | 4 | ||||
-rw-r--r-- | py/modcollections.c | 4 | ||||
-rw-r--r-- | py/modio.c | 4 | ||||
-rw-r--r-- | py/modmath.c | 4 | ||||
-rw-r--r-- | py/modmicropython.c | 4 | ||||
-rw-r--r-- | py/modstruct.c | 4 | ||||
-rw-r--r-- | py/modsys.c | 4 | ||||
-rw-r--r-- | stmhal/dac.c | 2 | ||||
-rw-r--r-- | stmhal/extint.c | 2 | ||||
-rw-r--r-- | stmhal/i2c.c | 11 | ||||
-rw-r--r-- | stmhal/led.c | 2 | ||||
-rw-r--r-- | stmhal/main.c | 2 | ||||
-rw-r--r-- | stmhal/modos.c | 4 | ||||
-rw-r--r-- | stmhal/modpyb.c | 4 | ||||
-rw-r--r-- | stmhal/modstm.c | 4 | ||||
-rw-r--r-- | stmhal/modtime.c | 4 | ||||
-rw-r--r-- | stmhal/spi.c | 10 | ||||
-rw-r--r-- | stmhal/timer.c | 4 | ||||
-rw-r--r-- | stmhal/uart.c | 6 | ||||
-rw-r--r-- | unix/modffi.c | 4 | ||||
-rw-r--r-- | unix/modsocket.c | 4 | ||||
-rw-r--r-- | unix/modtime.c | 4 |
28 files changed, 63 insertions, 59 deletions
diff --git a/py/builtin.c b/py/builtin.c index 58a86ac9b5..250a3558e8 100644 --- a/py/builtin.c +++ b/py/builtin.c @@ -128,7 +128,7 @@ MP_DEFINE_CONST_FUN_OBJ_1(mp_builtin_any_obj, mp_builtin_any); STATIC mp_obj_t mp_builtin_bin(mp_obj_t o_in) { mp_obj_t args[] = { MP_OBJ_NEW_QSTR(MP_QSTR__brace_open__colon__hash_b_brace_close_), o_in }; - return mp_obj_str_format(sizeof(args) / sizeof(args[0]), args); + return mp_obj_str_format(ARRAY_SIZE(args), args); } MP_DEFINE_CONST_FUN_OBJ_1(mp_builtin_bin_obj, mp_builtin_bin); diff --git a/py/builtintables.c b/py/builtintables.c index e6461ad80b..ab60183c66 100644 --- a/py/builtintables.c +++ b/py/builtintables.c @@ -118,8 +118,8 @@ const mp_obj_dict_t mp_builtin_object_dict_obj = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_builtin_object_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_builtin_object_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_builtin_object_table), + .alloc = ARRAY_SIZE(mp_builtin_object_table), .table = (mp_map_elem_t*)mp_builtin_object_table, }, }; @@ -158,8 +158,8 @@ const mp_obj_dict_t mp_builtin_module_dict_obj = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_builtin_module_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_builtin_module_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_builtin_module_table), + .alloc = ARRAY_SIZE(mp_builtin_module_table), .table = (mp_map_elem_t*)mp_builtin_module_table, }, }; diff --git a/py/compile.c b/py/compile.c index ee735a872f..532e29a233 100644 --- a/py/compile.c +++ b/py/compile.c @@ -86,8 +86,8 @@ STATIC const mp_map_elem_t mp_constants_table[] = { STATIC const mp_map_t mp_constants_map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_constants_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_constants_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_constants_table), + .alloc = ARRAY_SIZE(mp_constants_table), .table = (mp_map_elem_t*)mp_constants_table, }; diff --git a/py/emitinlinethumb.c b/py/emitinlinethumb.c index 1ed5526631..8b0e6af5e5 100644 --- a/py/emitinlinethumb.c +++ b/py/emitinlinethumb.c @@ -141,7 +141,7 @@ STATIC uint get_arg_reg(emit_inline_asm_t *emit, const char *op, mp_parse_node_t if (MP_PARSE_NODE_IS_ID(pn)) { qstr reg_qstr = MP_PARSE_NODE_LEAF_ARG(pn); const char *reg_str = qstr_str(reg_qstr); - for (uint i = 0; i < sizeof(reg_name_table) / sizeof(reg_name_table[0]); i++) { + for (uint i = 0; i < ARRAY_SIZE(reg_name_table); i++) { const reg_name_t *r = ®_name_table[i]; if (reg_str[0] == r->name[0] && reg_str[1] == r->name[1] && reg_str[2] == r->name[2] && (reg_str[2] == '\0' || reg_str[3] == '\0')) { if (r->reg > max_reg) { @@ -260,7 +260,7 @@ STATIC void emit_inline_thumb_op(emit_inline_asm_t *emit, qstr op, int n_args, m asm_thumb_b_n(emit->as, label_num); } else if (op_str[0] == 'b' && op_len == 3) { uint cc = -1; - for (uint i = 0; i < (sizeof cc_name_table) / (sizeof cc_name_table[0]); i++) { + for (uint i = 0; i < ARRAY_SIZE(cc_name_table); i++) { if (op_str[1] == cc_name_table[i].name[0] && op_str[2] == cc_name_table[i].name[1]) { cc = cc_name_table[i].cc; } @@ -52,6 +52,11 @@ int m_get_total_bytes_allocated(void); int m_get_current_bytes_allocated(void); int m_get_peak_bytes_allocated(void); +/** array helpers ***********************************************/ + +// get the number of elements in a fixed-size array +#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) + /** unichar / UTF-8 *********************************************/ typedef int unichar; // TODO diff --git a/py/modarray.c b/py/modarray.c index d8ff7158ff..ff668f5b87 100644 --- a/py/modarray.c +++ b/py/modarray.c @@ -14,8 +14,8 @@ STATIC const mp_obj_dict_t mp_module_array_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_array_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_array_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_array_globals_table), + .alloc = ARRAY_SIZE(mp_module_array_globals_table), .table = (mp_map_elem_t*)mp_module_array_globals_table, }, }; diff --git a/py/modcmath.c b/py/modcmath.c index 3f561e7f30..80dc0c8860 100644 --- a/py/modcmath.c +++ b/py/modcmath.c @@ -116,8 +116,8 @@ STATIC const mp_obj_dict_t mp_module_cmath_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_cmath_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_cmath_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_cmath_globals_table), + .alloc = ARRAY_SIZE(mp_module_cmath_globals_table), .table = (mp_map_elem_t*)mp_module_cmath_globals_table, }, }; diff --git a/py/modcollections.c b/py/modcollections.c index 5278a526fb..12d8f486c6 100644 --- a/py/modcollections.c +++ b/py/modcollections.c @@ -16,8 +16,8 @@ STATIC const mp_obj_dict_t mp_module_collections_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_collections_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_collections_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_collections_globals_table), + .alloc = ARRAY_SIZE(mp_module_collections_globals_table), .table = (mp_map_elem_t*)mp_module_collections_globals_table, }, }; diff --git a/py/modio.c b/py/modio.c index ac5c7df9de..d07dc6a982 100644 --- a/py/modio.c +++ b/py/modio.c @@ -18,8 +18,8 @@ STATIC const mp_obj_dict_t mp_module_io_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_io_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_io_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_io_globals_table), + .alloc = ARRAY_SIZE(mp_module_io_globals_table), .table = (mp_map_elem_t*)mp_module_io_globals_table, }, }; diff --git a/py/modmath.c b/py/modmath.c index 09bb4ce3aa..2c5b0e6faf 100644 --- a/py/modmath.c +++ b/py/modmath.c @@ -145,8 +145,8 @@ STATIC const mp_obj_dict_t mp_module_math_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_math_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_math_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_math_globals_table), + .alloc = ARRAY_SIZE(mp_module_math_globals_table), .table = (mp_map_elem_t*)mp_module_math_globals_table, }, }; diff --git a/py/modmicropython.c b/py/modmicropython.c index ed245969cf..b8ddbfe2a1 100644 --- a/py/modmicropython.c +++ b/py/modmicropython.c @@ -39,8 +39,8 @@ STATIC const mp_obj_dict_t mp_module_micropython_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_micropython_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_micropython_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_micropython_globals_table), + .alloc = ARRAY_SIZE(mp_module_micropython_globals_table), .table = (mp_map_elem_t*)mp_module_micropython_globals_table, }, }; diff --git a/py/modstruct.c b/py/modstruct.c index 81afd94d16..2a3c3c0ad6 100644 --- a/py/modstruct.c +++ b/py/modstruct.c @@ -98,8 +98,8 @@ STATIC const mp_obj_dict_t mp_module_struct_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_struct_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_struct_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_struct_globals_table), + .alloc = ARRAY_SIZE(mp_module_struct_globals_table), .table = (mp_map_elem_t*)mp_module_struct_globals_table, }, }; diff --git a/py/modsys.c b/py/modsys.c index 41ade1f275..ab067e0662 100644 --- a/py/modsys.c +++ b/py/modsys.c @@ -49,8 +49,8 @@ STATIC const mp_obj_dict_t mp_module_sys_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_sys_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_sys_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_sys_globals_table), + .alloc = ARRAY_SIZE(mp_module_sys_globals_table), .table = (mp_map_elem_t*)mp_module_sys_globals_table, }, }; diff --git a/stmhal/dac.c b/stmhal/dac.c index 92edb24d76..b9f825c05e 100644 --- a/stmhal/dac.c +++ b/stmhal/dac.c @@ -167,7 +167,7 @@ STATIC const mp_arg_parse_t pyb_dac_write_timed_accepted_args[] = { { MP_QSTR_freq, MP_ARG_PARSE_REQUIRED | MP_ARG_PARSE_INT, {.u_int = 0} }, { MP_QSTR_mode, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = DMA_NORMAL} }, }; -#define PYB_DAC_WRITE_TIMED_NUM_ARGS (sizeof(pyb_dac_write_timed_accepted_args) / sizeof(pyb_dac_write_timed_accepted_args[0])) +#define PYB_DAC_WRITE_TIMED_NUM_ARGS ARRAY_SIZE(pyb_dac_write_timed_accepted_args) mp_obj_t pyb_dac_write_timed(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { pyb_dac_obj_t *self = args[0]; diff --git a/stmhal/extint.c b/stmhal/extint.c index ede4f39515..2c576648b4 100644 --- a/stmhal/extint.c +++ b/stmhal/extint.c @@ -245,7 +245,7 @@ STATIC const mp_arg_parse_t pyb_extint_make_new_accepted_args[] = { { MP_QSTR_pull, MP_ARG_PARSE_REQUIRED | MP_ARG_PARSE_INT, {.u_int = 0} }, { MP_QSTR_callback, MP_ARG_PARSE_REQUIRED | MP_ARG_PARSE_OBJ, {.u_obj = MP_OBJ_NULL} }, }; -#define PYB_EXTINT_MAKE_NEW_NUM_ARGS (sizeof(pyb_extint_make_new_accepted_args) / sizeof(pyb_extint_make_new_accepted_args[0])) +#define PYB_EXTINT_MAKE_NEW_NUM_ARGS ARRAY_SIZE(pyb_extint_make_new_accepted_args) STATIC mp_obj_t extint_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const mp_obj_t *args) { // type_in == extint_obj_type diff --git a/stmhal/i2c.c b/stmhal/i2c.c index b6e3d9beee..4b44a1a313 100644 --- a/stmhal/i2c.c +++ b/stmhal/i2c.c @@ -157,7 +157,6 @@ STATIC const pyb_i2c_obj_t pyb_i2c_obj[] = { #endif {{&pyb_i2c_type}, &I2CHandle2} }; -#define PYB_NUM_I2C (sizeof(pyb_i2c_obj) / sizeof(pyb_i2c_obj[0])) STATIC void pyb_i2c_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t self_in, mp_print_kind_t kind) { pyb_i2c_obj_t *self = self_in; @@ -183,7 +182,7 @@ STATIC const mp_arg_parse_t pyb_i2c_init_accepted_args[] = { { MP_QSTR_baudrate, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 400000} }, { MP_QSTR_gencall, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_BOOL, {.u_bool = false} }, }; -#define PYB_I2C_INIT_NUM_ARGS (sizeof(pyb_i2c_init_accepted_args) / sizeof(pyb_i2c_init_accepted_args[0])) +#define PYB_I2C_INIT_NUM_ARGS ARRAY_SIZE(pyb_i2c_init_accepted_args) STATIC mp_obj_t pyb_i2c_init_helper(const pyb_i2c_obj_t *self, uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // parse args @@ -222,7 +221,7 @@ STATIC mp_obj_t pyb_i2c_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const machine_int_t i2c_id = mp_obj_get_int(args[0]) - 1; // check i2c number - if (!(0 <= i2c_id && i2c_id < PYB_NUM_I2C && pyb_i2c_obj[i2c_id].i2c != NULL)) { + if (!(0 <= i2c_id && i2c_id < ARRAY_SIZE(pyb_i2c_obj) && pyb_i2c_obj[i2c_id].i2c != NULL)) { nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "I2C bus %d does not exist", i2c_id + 1)); } @@ -301,7 +300,7 @@ STATIC const mp_arg_parse_t pyb_i2c_send_accepted_args[] = { { MP_QSTR_addr, MP_ARG_PARSE_INT, {.u_int = PYB_I2C_MASTER_ADDRESS} }, { MP_QSTR_timeout, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 5000} }, }; -#define PYB_I2C_SEND_NUM_ARGS (sizeof(pyb_i2c_send_accepted_args) / sizeof(pyb_i2c_send_accepted_args[0])) +#define PYB_I2C_SEND_NUM_ARGS ARRAY_SIZE(pyb_i2c_send_accepted_args) STATIC mp_obj_t pyb_i2c_send(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { pyb_i2c_obj_t *self = args[0]; @@ -341,7 +340,7 @@ STATIC const mp_arg_parse_t pyb_i2c_recv_accepted_args[] = { { MP_QSTR_addr, MP_ARG_PARSE_INT, {.u_int = PYB_I2C_MASTER_ADDRESS} }, { MP_QSTR_timeout, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 5000} }, }; -#define PYB_I2C_RECV_NUM_ARGS (sizeof(pyb_i2c_recv_accepted_args) / sizeof(pyb_i2c_recv_accepted_args[0])) +#define PYB_I2C_RECV_NUM_ARGS ARRAY_SIZE(pyb_i2c_recv_accepted_args) STATIC mp_obj_t pyb_i2c_recv(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { pyb_i2c_obj_t *self = args[0]; @@ -386,7 +385,7 @@ STATIC const mp_arg_parse_t pyb_i2c_mem_read_accepted_args[] = { { MP_QSTR_memaddr, MP_ARG_PARSE_REQUIRED | MP_ARG_PARSE_INT, {.u_int = 0} }, { MP_QSTR_timeout, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 5000} }, }; -#define PYB_I2C_MEM_READ_NUM_ARGS (sizeof(pyb_i2c_mem_read_accepted_args) / sizeof(pyb_i2c_mem_read_accepted_args[0])) +#define PYB_I2C_MEM_READ_NUM_ARGS ARRAY_SIZE(pyb_i2c_mem_read_accepted_args) STATIC mp_obj_t pyb_i2c_mem_read(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { pyb_i2c_obj_t *self = args[0]; diff --git a/stmhal/led.c b/stmhal/led.c index d30c72157e..5a0dd7b9ac 100644 --- a/stmhal/led.c +++ b/stmhal/led.c @@ -30,7 +30,7 @@ STATIC const pyb_led_obj_t pyb_led_obj[] = { #endif #endif }; -#define NUM_LEDS (sizeof(pyb_led_obj) / sizeof(pyb_led_obj[0])) +#define NUM_LEDS ARRAY_SIZE(pyb_led_obj) void led_init(void) { /* GPIO structure */ diff --git a/stmhal/main.c b/stmhal/main.c index 861e584d16..a25f3f69de 100644 --- a/stmhal/main.c +++ b/stmhal/main.c @@ -279,7 +279,7 @@ soft_reset: MP_OBJ_NEW_SMALL_INT(115200), }; pyb_uart_global_debug = pyb_uart_type.make_new((mp_obj_t)&pyb_uart_type, - sizeof(args) / sizeof(args[0]), + ARRAY_SIZE(args), 0, args); } #else diff --git a/stmhal/modos.c b/stmhal/modos.c index f160627525..33b4ff73e0 100644 --- a/stmhal/modos.c +++ b/stmhal/modos.c @@ -167,8 +167,8 @@ STATIC const mp_obj_dict_t os_module_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(os_module_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(os_module_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(os_module_globals_table), + .alloc = ARRAY_SIZE(os_module_globals_table), .table = (mp_map_elem_t*)os_module_globals_table, }, }; diff --git a/stmhal/modpyb.c b/stmhal/modpyb.c index 7aec712510..a4e54fb87c 100644 --- a/stmhal/modpyb.c +++ b/stmhal/modpyb.c @@ -324,8 +324,8 @@ STATIC const mp_obj_dict_t pyb_module_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(pyb_module_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(pyb_module_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(pyb_module_globals_table), + .alloc = ARRAY_SIZE(pyb_module_globals_table), .table = (mp_map_elem_t*)pyb_module_globals_table, }, }; diff --git a/stmhal/modstm.c b/stmhal/modstm.c index c923d13f3d..078f590ece 100644 --- a/stmhal/modstm.c +++ b/stmhal/modstm.c @@ -105,8 +105,8 @@ STATIC const mp_obj_dict_t stm_module_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(stm_module_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(stm_module_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(stm_module_globals_table), + .alloc = ARRAY_SIZE(stm_module_globals_table), .table = (mp_map_elem_t*)stm_module_globals_table, }, }; diff --git a/stmhal/modtime.c b/stmhal/modtime.c index c20752e21d..83be2deaa1 100644 --- a/stmhal/modtime.c +++ b/stmhal/modtime.c @@ -33,8 +33,8 @@ STATIC const mp_obj_dict_t time_module_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(time_module_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(time_module_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(time_module_globals_table), + .alloc = ARRAY_SIZE(time_module_globals_table), .table = (mp_map_elem_t*)time_module_globals_table, }, }; diff --git a/stmhal/spi.c b/stmhal/spi.c index 99bc08c3b1..7e2e4ad4cf 100644 --- a/stmhal/spi.c +++ b/stmhal/spi.c @@ -158,7 +158,7 @@ STATIC const pyb_spi_obj_t pyb_spi_obj[] = { {{&pyb_spi_type}, NULL}, #endif }; -#define PYB_NUM_SPI (sizeof(pyb_spi_obj) / sizeof(pyb_spi_obj[0])) +#define PYB_NUM_SPI ARRAY_SIZE(pyb_spi_obj) STATIC void pyb_spi_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t self_in, mp_print_kind_t kind) { pyb_spi_obj_t *self = self_in; @@ -206,7 +206,7 @@ STATIC const mp_arg_parse_t pyb_spi_init_accepted_args[] = { { MP_QSTR_ti, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_BOOL, {.u_bool = false} }, { MP_QSTR_crc, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_OBJ, {.u_obj = mp_const_none} }, }; -#define PYB_SPI_INIT_NUM_ARGS (sizeof(pyb_spi_init_accepted_args) / sizeof(pyb_spi_init_accepted_args[0])) +#define PYB_SPI_INIT_NUM_ARGS ARRAY_SIZE(pyb_spi_init_accepted_args) STATIC mp_obj_t pyb_spi_init_helper(const pyb_spi_obj_t *self, uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // parse args @@ -299,7 +299,7 @@ STATIC const mp_arg_parse_t pyb_spi_send_accepted_args[] = { { MP_QSTR_send, MP_ARG_PARSE_REQUIRED | MP_ARG_PARSE_OBJ, {.u_obj = MP_OBJ_NULL} }, { MP_QSTR_timeout, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 5000} }, }; -#define PYB_SPI_SEND_NUM_ARGS (sizeof(pyb_spi_send_accepted_args) / sizeof(pyb_spi_send_accepted_args[0])) +#define PYB_SPI_SEND_NUM_ARGS ARRAY_SIZE(pyb_spi_send_accepted_args) STATIC mp_obj_t pyb_spi_send(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // TODO assumes transmission size is 8-bits wide @@ -331,7 +331,7 @@ STATIC const mp_arg_parse_t pyb_spi_recv_accepted_args[] = { { MP_QSTR_recv, MP_ARG_PARSE_REQUIRED | MP_ARG_PARSE_OBJ, {.u_obj = MP_OBJ_NULL} }, { MP_QSTR_timeout, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 5000} }, }; -#define PYB_SPI_RECV_NUM_ARGS (sizeof(pyb_spi_recv_accepted_args) / sizeof(pyb_spi_recv_accepted_args[0])) +#define PYB_SPI_RECV_NUM_ARGS ARRAY_SIZE(pyb_spi_recv_accepted_args) STATIC mp_obj_t pyb_spi_recv(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // TODO assumes transmission size is 8-bits wide @@ -368,7 +368,7 @@ STATIC const mp_arg_parse_t pyb_spi_send_recv_accepted_args[] = { { MP_QSTR_recv, MP_ARG_PARSE_OBJ, {.u_obj = MP_OBJ_NULL} }, { MP_QSTR_timeout, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 5000} }, }; -#define PYB_SPI_SEND_RECV_NUM_ARGS (sizeof(pyb_spi_send_recv_accepted_args) / sizeof(pyb_spi_send_recv_accepted_args[0])) +#define PYB_SPI_SEND_RECV_NUM_ARGS ARRAY_SIZE(pyb_spi_send_recv_accepted_args) STATIC mp_obj_t pyb_spi_send_recv(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // TODO assumes transmission size is 8-bits wide diff --git a/stmhal/timer.c b/stmhal/timer.c index bd70eaa870..8a0d3f5bb6 100644 --- a/stmhal/timer.c +++ b/stmhal/timer.c @@ -57,7 +57,7 @@ static uint32_t tim3_counter = 0; // Used to do callbacks to Python code on interrupt STATIC pyb_timer_obj_t *pyb_timer_obj_all[14]; -#define PYB_TIMER_OBJ_ALL_NUM (sizeof(pyb_timer_obj_all) / sizeof(pyb_timer_obj_all[0])) +#define PYB_TIMER_OBJ_ALL_NUM ARRAY_SIZE(pyb_timer_obj_all) void timer_init0(void) { tim3_counter = 0; @@ -180,7 +180,7 @@ STATIC const mp_arg_parse_t pyb_timer_init_accepted_args[] = { { MP_QSTR_mode, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = TIM_COUNTERMODE_UP} }, { MP_QSTR_div, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = TIM_CLOCKDIVISION_DIV1} }, }; -#define PYB_TIMER_INIT_NUM_ARGS (sizeof(pyb_timer_init_accepted_args) / sizeof(pyb_timer_init_accepted_args[0])) +#define PYB_TIMER_INIT_NUM_ARGS ARRAY_SIZE(pyb_timer_init_accepted_args) STATIC mp_obj_t pyb_timer_init_helper(pyb_timer_obj_t *self, uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // parse args diff --git a/stmhal/uart.c b/stmhal/uart.c index 1b0d9e1b60..66997ce3e9 100644 --- a/stmhal/uart.c +++ b/stmhal/uart.c @@ -231,7 +231,7 @@ STATIC const mp_arg_parse_t pyb_uart_init_accepted_args[] = { { MP_QSTR_stop, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 1} }, { MP_QSTR_parity, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_OBJ, {.u_obj = mp_const_none} }, }; -#define PYB_UART_INIT_NUM_ARGS (sizeof(pyb_uart_init_accepted_args) / sizeof(pyb_uart_init_accepted_args[0])) +#define PYB_UART_INIT_NUM_ARGS ARRAY_SIZE(pyb_uart_init_accepted_args) STATIC mp_obj_t pyb_uart_init_helper(pyb_uart_obj_t *self, uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // parse args @@ -331,7 +331,7 @@ STATIC const mp_arg_parse_t pyb_uart_send_accepted_args[] = { { MP_QSTR_send, MP_ARG_PARSE_REQUIRED | MP_ARG_PARSE_OBJ, {.u_obj = MP_OBJ_NULL} }, { MP_QSTR_timeout, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 5000} }, }; -#define PYB_UART_SEND_NUM_ARGS (sizeof(pyb_uart_send_accepted_args) / sizeof(pyb_uart_send_accepted_args[0])) +#define PYB_UART_SEND_NUM_ARGS ARRAY_SIZE(pyb_uart_send_accepted_args) STATIC mp_obj_t pyb_uart_send(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // TODO assumes transmission size is 8-bits wide @@ -363,7 +363,7 @@ STATIC const mp_arg_parse_t pyb_uart_recv_accepted_args[] = { { MP_QSTR_recv, MP_ARG_PARSE_REQUIRED | MP_ARG_PARSE_OBJ, {.u_obj = MP_OBJ_NULL} }, { MP_QSTR_timeout, MP_ARG_PARSE_KW_ONLY | MP_ARG_PARSE_INT, {.u_int = 5000} }, }; -#define PYB_UART_RECV_NUM_ARGS (sizeof(pyb_uart_recv_accepted_args) / sizeof(pyb_uart_recv_accepted_args[0])) +#define PYB_UART_RECV_NUM_ARGS ARRAY_SIZE(pyb_uart_recv_accepted_args) STATIC mp_obj_t pyb_uart_recv(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { // TODO assumes transmission size is 8-bits wide diff --git a/unix/modffi.c b/unix/modffi.c index 56ea6ed307..be542625ed 100644 --- a/unix/modffi.c +++ b/unix/modffi.c @@ -394,8 +394,8 @@ STATIC const mp_obj_dict_t mp_module_ffi_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_ffi_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_ffi_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_ffi_globals_table), + .alloc = ARRAY_SIZE(mp_module_ffi_globals_table), .table = (mp_map_elem_t*)mp_module_ffi_globals_table, }, }; diff --git a/unix/modsocket.c b/unix/modsocket.c index 4c76502da6..e52f5d92a9 100644 --- a/unix/modsocket.c +++ b/unix/modsocket.c @@ -378,8 +378,8 @@ STATIC const mp_obj_dict_t mp_module_socket_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_socket_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_socket_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_socket_globals_table), + .alloc = ARRAY_SIZE(mp_module_socket_globals_table), .table = (mp_map_elem_t*)mp_module_socket_globals_table, }, }; diff --git a/unix/modtime.c b/unix/modtime.c index a0d7cd0462..d8ca0e4ef5 100644 --- a/unix/modtime.c +++ b/unix/modtime.c @@ -63,8 +63,8 @@ STATIC const mp_obj_dict_t mp_module_time_globals = { .map = { .all_keys_are_qstrs = 1, .table_is_fixed_array = 1, - .used = sizeof(mp_module_time_globals_table) / sizeof(mp_map_elem_t), - .alloc = sizeof(mp_module_time_globals_table) / sizeof(mp_map_elem_t), + .used = ARRAY_SIZE(mp_module_time_globals_table), + .alloc = ARRAY_SIZE(mp_module_time_globals_table), .table = (mp_map_elem_t*)mp_module_time_globals_table, }, }; |