py/obj.h: Add and use mp_obj_is_bool() helper.

Commit d96cfd13e3 introduced a regression in
testing for bool objects, that such objects were in some cases no longer
recognised and bools, eg when using mp_obj_is_type(o, &mp_type_bool), or
mp_obj_is_integer(o).

This commit fixes that problem by adding mp_obj_is_bool(o).  Builds with
MICROPY_OBJ_IMMEDIATE_OBJS enabled check if the object is any of the const
True or False objects.  Builds without it use the old method of ->type
checking, which compiles to smaller code (compared with the former
mentioned method).

Fixes #5538.
This commit is contained in:
Yonatan Goldschmidt
2020-01-22 13:19:14 +01:00
committed by Damien George
parent 27f41e624c
commit d9433d3e94
2 changed files with 8 additions and 2 deletions

View File

@@ -910,7 +910,7 @@ STATIC bool istype(char ch) {
}
STATIC bool arg_looks_integer(mp_obj_t arg) {
return mp_obj_is_type(arg, &mp_type_bool) || mp_obj_is_int(arg);
return mp_obj_is_bool(arg) || mp_obj_is_int(arg);
}
STATIC bool arg_looks_numeric(mp_obj_t arg) {