From 66dc1397c92f6accf102bcd15c6395902fd46c8b Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 1 Jun 2023 12:12:22 +1000 Subject: py/obj: Accept user types in mp_obj_get_int_maybe. This is possible now that MP_UNARY_OP_INT_MAYBE exists. As a consequence mp_obj_get_int now also supports user types, which was previously possible with MP_UNARY_OP_INT but no tests existed for it. Signed-off-by: Damien George --- py/obj.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'py/obj.c') diff --git a/py/obj.c b/py/obj.c index dc6919467..64c52eeb7 100644 --- a/py/obj.c +++ b/py/obj.c @@ -326,7 +326,12 @@ bool mp_obj_get_int_maybe(mp_const_obj_t arg, mp_int_t *value) { } else if (mp_obj_is_exact_type(arg, &mp_type_int)) { *value = mp_obj_int_get_checked(arg); } else { - return false; + arg = mp_unary_op(MP_UNARY_OP_INT_MAYBE, (mp_obj_t)arg); + if (arg != MP_OBJ_NULL) { + *value = mp_obj_int_get_checked(arg); + } else { + return false; + } } return true; } -- cgit v1.2.3