Skip to content
Snippets Groups Projects
Commit 6c82cfc0 authored by Damien George's avatar Damien George
Browse files

py/objtype: Change type of enum-to-qstr table to uint16_t to save space.

Qstr values fit in 16-bits (and this fact is used elsewhere in the code) so
no need to use more than that for the large lookup tables.  The compiler
will anyway give a warning if the qstr values don't fit in 16 bits.  Saves
around 80 bytes of code space for Thumb2 archs.
parent 9e0cdb22
No related branches found
No related tags found
No related merge requests found
......@@ -334,7 +334,7 @@ mp_obj_t mp_obj_instance_make_new(const mp_obj_type_t *self, size_t n_args, size
return MP_OBJ_FROM_PTR(o);
}
const qstr mp_unary_op_method_name[] = {
const uint16_t mp_unary_op_method_name[] = {
[MP_UNARY_OP_BOOL] = MP_QSTR___bool__,
[MP_UNARY_OP_LEN] = MP_QSTR___len__,
[MP_UNARY_OP_HASH] = MP_QSTR___hash__,
......@@ -408,7 +408,7 @@ STATIC mp_obj_t instance_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
}
}
const qstr mp_binary_op_method_name[] = {
const uint16_t mp_binary_op_method_name[] = {
/*
MP_BINARY_OP_OR,
MP_BINARY_OP_XOR,
......
......@@ -57,9 +57,9 @@ typedef struct _mp_arg_t {
mp_arg_val_t defval;
} mp_arg_t;
// defined in objtype.c
extern const qstr mp_unary_op_method_name[];
extern const qstr mp_binary_op_method_name[];
// Tables mapping operator enums to qstrs, defined in objtype.c
extern const uint16_t mp_unary_op_method_name[];
extern const uint16_t mp_binary_op_method_name[];
void mp_init(void);
void mp_deinit(void);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment