From 7cf26ca4bd84134b9fbddaf032370e91326edb64 Mon Sep 17 00:00:00 2001 From: Yonatan Goldschmidt Date: Tue, 4 Jun 2019 20:14:41 +0300 Subject: [PATCH] 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. --- py/obj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/obj.c b/py/obj.c index 122f0ea624..1797ee56be 100644 --- a/py/obj.c +++ b/py/obj.c @@ -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;