support int(str, basbase)

This commit is contained in:
xyb 2014-01-14 22:43:18 +08:00
parent c178ea471e
commit 82e61bdc24
2 changed files with 2 additions and 2 deletions

View File

@ -158,7 +158,7 @@ machine_int_t mp_obj_get_int_base(mp_obj_t arg, mp_obj_t base_arg) {
if (base_arg == 0) {
value = qstr_str(mp_obj_str_get(arg));
return (machine_int_t)strtonum(value, 0);
} else if (MP_OBJ_IS_TYPE(base_arg, &int_type)) {
} else if (MP_OBJ_IS_SMALL_INT(base_arg)) {
base = MP_OBJ_SMALL_INT_VALUE(base_arg);
value = qstr_str(mp_obj_str_get(arg));
return (machine_int_t)strtonum(value, base);

View File

@ -24,7 +24,7 @@ static mp_obj_t int_make_new(mp_obj_t type_in, int n_args, const mp_obj_t *args)
case 2:
// TODO make args[0] and args[1] correct
return MP_OBJ_NEW_SMALL_INT(mp_obj_get_int_base(args[0], args[1]));
return MP_OBJ_NEW_SMALL_INT(mp_obj_get_int_base(args[1], args[0]));
default:
nlr_jump(mp_obj_new_exception_msg_1_arg(MP_QSTR_TypeError, "int takes at most 2 arguments, %d given", (void*)(machine_int_t)n_args));