py: With obj repr "C", change raw str accessor from macro to function.

This saves around 1000 bytes (Thumb2 arch) because in repr "C" it is
costly to check and extract a qstr.  So making such check/extract a
function instead of a macro saves lots of code space.
This commit is contained in:
Damien George
2015-10-18 23:09:04 +01:00
parent 183edefddd
commit 04353cc85e
2 changed files with 17 additions and 0 deletions

View File

@@ -2038,6 +2038,17 @@ const char *mp_obj_str_get_data(mp_obj_t self_in, mp_uint_t *len) {
}
}
#if MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_C
const byte *mp_obj_str_get_data_no_check(mp_obj_t self_in, mp_uint_t *len) {
if (MP_OBJ_IS_QSTR(self_in)) {
return qstr_data(MP_OBJ_QSTR_VALUE(self_in), len);
} else {
*len = ((mp_obj_str_t*)self_in)->len;
return ((mp_obj_str_t*)self_in)->data;
}
}
#endif
/******************************************************************************/
/* str iterator */