py/obj: Optimise small-int comparison to 0 in mp_obj_is_true.

Instead of converting to a small-int at runtime this can be done at compile
time, then we only have a simple comparison during runtime.  This reduces
code size on some ports (e.g -4 on qemu-arm, -52 on unix nanbox), and for
others at least doesn't increase code size.
pull/4838/head
Yonatan Goldschmidt 2019-06-04 20:14:41 +03:00 zatwierdzone przez Damien George
rodzic faf3d3e9e9
commit 7cf26ca4bd
1 zmienionych plików z 1 dodań i 1 usunięć

Wyświetl plik

@ -113,7 +113,7 @@ bool mp_obj_is_true(mp_obj_t arg) {
} else if (arg == mp_const_none) {
return 0;
} else if (mp_obj_is_small_int(arg)) {
if (MP_OBJ_SMALL_INT_VALUE(arg) == 0) {
if (arg == MP_OBJ_NEW_SMALL_INT(0)) {
return 0;
} else {
return 1;