mirror of
https://github.com/micropython/micropython.git
synced 2026-01-06 20:20:14 +01:00
all: Reformat C and Python source code with tools/codeformat.py.
This is run with uncrustify 0.70.1, and black 19.10b0.
This commit is contained in:
66
py/objlist.c
66
py/objlist.c
@@ -88,15 +88,18 @@ STATIC mp_obj_t list_make_new(const mp_obj_type_t *type_in, size_t n_args, size_
|
||||
STATIC mp_obj_t list_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
|
||||
mp_obj_list_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
switch (op) {
|
||||
case MP_UNARY_OP_BOOL: return mp_obj_new_bool(self->len != 0);
|
||||
case MP_UNARY_OP_LEN: return MP_OBJ_NEW_SMALL_INT(self->len);
|
||||
case MP_UNARY_OP_BOOL:
|
||||
return mp_obj_new_bool(self->len != 0);
|
||||
case MP_UNARY_OP_LEN:
|
||||
return MP_OBJ_NEW_SMALL_INT(self->len);
|
||||
#if MICROPY_PY_SYS_GETSIZEOF
|
||||
case MP_UNARY_OP_SIZEOF: {
|
||||
size_t sz = sizeof(*self) + sizeof(mp_obj_t) * self->alloc;
|
||||
return MP_OBJ_NEW_SMALL_INT(sz);
|
||||
}
|
||||
#endif
|
||||
default: return MP_OBJ_NULL; // op not supported
|
||||
default:
|
||||
return MP_OBJ_NULL; // op not supported
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,7 +156,7 @@ STATIC mp_obj_t list_binary_op(mp_binary_op_t op, mp_obj_t lhs, mp_obj_t rhs) {
|
||||
STATIC mp_obj_t list_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
if (value == MP_OBJ_NULL) {
|
||||
// delete
|
||||
#if MICROPY_PY_BUILTINS_SLICE
|
||||
#if MICROPY_PY_BUILTINS_SLICE
|
||||
if (mp_obj_is_type(index, &mp_type_slice)) {
|
||||
mp_obj_list_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
mp_bound_slice_t slice;
|
||||
@@ -163,20 +166,20 @@ STATIC mp_obj_t list_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
|
||||
mp_int_t len_adj = slice.start - slice.stop;
|
||||
assert(len_adj <= 0);
|
||||
mp_seq_replace_slice_no_grow(self->items, self->len, slice.start, slice.stop, self->items/*NULL*/, 0, sizeof(*self->items));
|
||||
mp_seq_replace_slice_no_grow(self->items, self->len, slice.start, slice.stop, self->items /*NULL*/, 0, sizeof(*self->items));
|
||||
// Clear "freed" elements at the end of list
|
||||
mp_seq_clear(self->items, self->len + len_adj, self->len, sizeof(*self->items));
|
||||
self->len += len_adj;
|
||||
return mp_const_none;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
mp_obj_t args[2] = {self_in, index};
|
||||
list_pop(2, args);
|
||||
return mp_const_none;
|
||||
} else if (value == MP_OBJ_SENTINEL) {
|
||||
// load
|
||||
mp_obj_list_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
#if MICROPY_PY_BUILTINS_SLICE
|
||||
#if MICROPY_PY_BUILTINS_SLICE
|
||||
if (mp_obj_is_type(index, &mp_type_slice)) {
|
||||
mp_bound_slice_t slice;
|
||||
if (!mp_seq_get_fast_slice_indexes(self->len, index, &slice)) {
|
||||
@@ -186,14 +189,15 @@ STATIC mp_obj_t list_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
mp_seq_copy(res->items, self->items + slice.start, res->len, mp_obj_t);
|
||||
return MP_OBJ_FROM_PTR(res);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
size_t index_val = mp_get_index(self->base.type, self->len, index, false);
|
||||
return self->items[index_val];
|
||||
} else {
|
||||
#if MICROPY_PY_BUILTINS_SLICE
|
||||
#if MICROPY_PY_BUILTINS_SLICE
|
||||
if (mp_obj_is_type(index, &mp_type_slice)) {
|
||||
mp_obj_list_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
size_t value_len; mp_obj_t *value_items;
|
||||
size_t value_len;
|
||||
mp_obj_t *value_items;
|
||||
mp_obj_get_array(value, &value_len, &value_items);
|
||||
mp_bound_slice_t slice_out;
|
||||
if (!mp_seq_get_fast_slice_indexes(self->len, index, &slice_out)) {
|
||||
@@ -219,7 +223,7 @@ STATIC mp_obj_t list_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
|
||||
self->len += len_adj;
|
||||
return mp_const_none;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
mp_obj_list_store(self_in, index, value);
|
||||
return mp_const_none;
|
||||
}
|
||||
@@ -275,7 +279,7 @@ STATIC mp_obj_t list_pop(size_t n_args, const mp_obj_t *args) {
|
||||
// Clear stale pointer from slot which just got freed to prevent GC issues
|
||||
self->items[self->len] = MP_OBJ_NULL;
|
||||
if (self->alloc > LIST_MIN_ALLOC && self->alloc > 2 * self->len) {
|
||||
self->items = m_renew(mp_obj_t, self->items, self->alloc, self->alloc/2);
|
||||
self->items = m_renew(mp_obj_t, self->items, self->alloc, self->alloc / 2);
|
||||
self->alloc /= 2;
|
||||
}
|
||||
return ret;
|
||||
@@ -288,9 +292,13 @@ STATIC void mp_quicksort(mp_obj_t *head, mp_obj_t *tail, mp_obj_t key_fn, mp_obj
|
||||
mp_obj_t *t = tail;
|
||||
mp_obj_t v = key_fn == MP_OBJ_NULL ? tail[0] : mp_call_function_1(key_fn, tail[0]); // get pivot using key_fn
|
||||
for (;;) {
|
||||
do ++h; while (h < t && mp_binary_op(MP_BINARY_OP_LESS, key_fn == MP_OBJ_NULL ? h[0] : mp_call_function_1(key_fn, h[0]), v) == binop_less_result);
|
||||
do --t; while (h < t && mp_binary_op(MP_BINARY_OP_LESS, v, key_fn == MP_OBJ_NULL ? t[0] : mp_call_function_1(key_fn, t[0])) == binop_less_result);
|
||||
if (h >= t) break;
|
||||
do {++h;
|
||||
} while (h < t && mp_binary_op(MP_BINARY_OP_LESS, key_fn == MP_OBJ_NULL ? h[0] : mp_call_function_1(key_fn, h[0]), v) == binop_less_result);
|
||||
do {--t;
|
||||
} while (h < t && mp_binary_op(MP_BINARY_OP_LESS, v, key_fn == MP_OBJ_NULL ? t[0] : mp_call_function_1(key_fn, t[0])) == binop_less_result);
|
||||
if (h >= t) {
|
||||
break;
|
||||
}
|
||||
mp_obj_t x = h[0];
|
||||
h[0] = t[0];
|
||||
t[0] = x;
|
||||
@@ -321,15 +329,15 @@ mp_obj_t mp_obj_list_sort(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_
|
||||
mp_arg_val_t key, reverse;
|
||||
} args;
|
||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args,
|
||||
MP_ARRAY_SIZE(allowed_args), allowed_args, (mp_arg_val_t*)&args);
|
||||
MP_ARRAY_SIZE(allowed_args), allowed_args, (mp_arg_val_t *)&args);
|
||||
|
||||
mp_check_self(mp_obj_is_type(pos_args[0], &mp_type_list));
|
||||
mp_obj_list_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
||||
|
||||
if (self->len > 1) {
|
||||
mp_quicksort(self->items, self->items + self->len - 1,
|
||||
args.key.u_obj == mp_const_none ? MP_OBJ_NULL : args.key.u_obj,
|
||||
args.reverse.u_bool ? mp_const_false : mp_const_true);
|
||||
args.key.u_obj == mp_const_none ? MP_OBJ_NULL : args.key.u_obj,
|
||||
args.reverse.u_bool ? mp_const_false : mp_const_true);
|
||||
}
|
||||
|
||||
return mp_const_none;
|
||||
@@ -369,19 +377,19 @@ STATIC mp_obj_t list_insert(mp_obj_t self_in, mp_obj_t idx, mp_obj_t obj) {
|
||||
// insert has its own strange index logic
|
||||
mp_int_t index = MP_OBJ_SMALL_INT_VALUE(idx);
|
||||
if (index < 0) {
|
||||
index += self->len;
|
||||
index += self->len;
|
||||
}
|
||||
if (index < 0) {
|
||||
index = 0;
|
||||
index = 0;
|
||||
}
|
||||
if ((size_t)index > self->len) {
|
||||
index = self->len;
|
||||
index = self->len;
|
||||
}
|
||||
|
||||
mp_obj_list_append(self_in, mp_const_none);
|
||||
|
||||
for (mp_int_t i = self->len-1; i > index; i--) {
|
||||
self->items[i] = self->items[i-1];
|
||||
for (mp_int_t i = self->len - 1; i > index; i--) {
|
||||
self->items[i] = self->items[i - 1];
|
||||
}
|
||||
self->items[index] = obj;
|
||||
|
||||
@@ -402,10 +410,10 @@ STATIC mp_obj_t list_reverse(mp_obj_t self_in) {
|
||||
mp_obj_list_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
|
||||
mp_int_t len = self->len;
|
||||
for (mp_int_t i = 0; i < len/2; i++) {
|
||||
mp_obj_t a = self->items[i];
|
||||
self->items[i] = self->items[len-i-1];
|
||||
self->items[len-i-1] = a;
|
||||
for (mp_int_t i = 0; i < len / 2; i++) {
|
||||
mp_obj_t a = self->items[i];
|
||||
self->items[i] = self->items[len - i - 1];
|
||||
self->items[len - i - 1] = a;
|
||||
}
|
||||
|
||||
return mp_const_none;
|
||||
@@ -448,7 +456,7 @@ const mp_obj_type_t mp_type_list = {
|
||||
.binary_op = list_binary_op,
|
||||
.subscr = list_subscr,
|
||||
.getiter = list_getiter,
|
||||
.locals_dict = (mp_obj_dict_t*)&list_locals_dict,
|
||||
.locals_dict = (mp_obj_dict_t *)&list_locals_dict,
|
||||
};
|
||||
|
||||
void mp_obj_list_init(mp_obj_list_t *o, size_t n) {
|
||||
@@ -518,7 +526,7 @@ STATIC mp_obj_t list_it_iternext(mp_obj_t self_in) {
|
||||
|
||||
mp_obj_t mp_obj_new_list_iterator(mp_obj_t list, size_t cur, mp_obj_iter_buf_t *iter_buf) {
|
||||
assert(sizeof(mp_obj_list_it_t) <= sizeof(mp_obj_iter_buf_t));
|
||||
mp_obj_list_it_t *o = (mp_obj_list_it_t*)iter_buf;
|
||||
mp_obj_list_it_t *o = (mp_obj_list_it_t *)iter_buf;
|
||||
o->base.type = &mp_type_polymorph_iter;
|
||||
o->iternext = list_it_iternext;
|
||||
o->list = list;
|
||||
|
||||
Reference in New Issue
Block a user