Make slice make_new match mp_make_new_fun_t exactly, check the input type and enable it for qemu tests.

This commit is contained in:
Scott Shawcroft 2017-02-24 16:48:01 +01:00
parent 75d6abe3bb
commit 7dbe4e98a7
2 changed files with 6 additions and 2 deletions

View File

@ -129,7 +129,7 @@ STATIC void slice_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
}
STATIC mp_obj_t slice_make_new(const mp_obj_type_t *type,
mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args);
size_t n_args, size_t n_kw, const mp_obj_t *args);
#endif
const mp_obj_type_t mp_type_slice = {
@ -153,7 +153,10 @@ mp_obj_t mp_obj_new_slice(mp_obj_t ostart, mp_obj_t ostop, mp_obj_t ostep) {
#if MICROPY_PY_BUILTINS_SLICE_ATTRS
STATIC mp_obj_t slice_make_new(const mp_obj_type_t *type,
mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) {
size_t n_args, size_t n_kw, const mp_obj_t *args) {
if (type != &mp_type_slice) {
mp_raise_NotImplementedError("Cannot subclass slice");
}
// check number of arguments
mp_arg_check_num(n_args, n_kw, 1, 3, false);

View File

@ -20,6 +20,7 @@
#define MICROPY_PY_ARRAY_SLICE_ASSIGN (1)
#define MICROPY_PY_BUILTINS_FROZENSET (1)
#define MICROPY_PY_BUILTINS_MEMORYVIEW (1)
#define MICROPY_PY_BUILTINS_SLICE_ATTRS (1)
#define MICROPY_PY_IO (1)
#define MICROPY_PY_SYS_EXIT (1)
#define MICROPY_PY_SYS_MAXSIZE (1)