py/modbuiltins: Fix getattr to work with class raising AttributeError.
Fixes issue #6089.
diff --git a/py/modbuiltins.c b/py/modbuiltins.c
index 85d30ab..cfbfc5a 100644
--- a/py/modbuiltins.c
+++ b/py/modbuiltins.c
@@ -558,7 +558,11 @@
static inline mp_obj_t mp_load_attr_default(mp_obj_t base, qstr attr, mp_obj_t defval) {
mp_obj_t dest[2];
// use load_method, raising or not raising exception
- ((defval == MP_OBJ_NULL) ? mp_load_method : mp_load_method_maybe)(base, attr, dest);
+ if (defval == MP_OBJ_NULL) {
+ mp_load_method(base, attr, dest);
+ } else {
+ mp_load_method_protected(base, attr, dest, false);
+ }
if (dest[0] == MP_OBJ_NULL) {
return defval;
} else if (dest[1] == MP_OBJ_NULL) {