34 #define SWAP(type, var1, var2) { type t = var2; var2 = var1; var1 = t; } 38 void mp_seq_multiply(
const void *items,
size_t item_sz,
size_t len,
size_t times,
void *dest) {
39 for (
size_t i = 0; i < times; i++) {
40 size_t copy_sz = item_sz * len;
41 memcpy(dest, items, copy_sz);
42 dest = (
char*)dest + copy_sz;
46 #if MICROPY_PY_BUILTINS_SLICE 55 if (indexes->
step == 0) {
63 if (indexes->
step > 0) {
72 if (indexes->
step > 0) {
79 if (stop >= 0 && indexes->
step < 0) {
88 if (indexes->
step < 0) {
104 if (indexes->
step < 0) {
114 }
else if (indexes->
step < 0 &&
start < stop) {
119 indexes->
stop = stop;
121 return indexes->
step == 1;
135 while (
start >= stop) {
140 while (
start < stop) {
158 SWAP(
size_t, len1, len2);
165 size_t min_len = len1 < len2 ? len1 : len2;
166 int res =
memcmp(data1, data2, min_len);
202 SWAP(
size_t, len1, len2);
210 size_t len = len1 < len2 ? len1 : len2;
211 for (
size_t i = 0; i < len; i++) {
256 for (
size_t i =
start; i < stop; i++) {
268 for (
size_t i = 0; i < len; i++) {
mp_obj_type_t * mp_obj_get_type(mp_const_obj_t o_in)
bool mp_obj_equal(mp_obj_t o1, mp_obj_t o2)
mp_obj_t mp_obj_new_list(size_t n, mp_obj_t *items)
mp_int_t mp_obj_get_int(mp_const_obj_t arg)
mp_obj_t mp_obj_list_append(mp_obj_t self_in, mp_obj_t arg)
size_t mp_get_index(const mp_obj_type_t *type, size_t len, mp_obj_t index, bool is_slice)
#define MP_OBJ_NEW_SMALL_INT(small_int)
bool mp_seq_cmp_objs(mp_uint_t op, const mp_obj_t *items1, size_t len1, const mp_obj_t *items2, size_t len2)
#define SWAP(type, var1, var2)
mp_obj_t mp_binary_op(mp_binary_op_t op, mp_obj_t lhs, mp_obj_t rhs)
mp_obj_t mp_seq_extract_slice(size_t len, const mp_obj_t *seq, mp_bound_slice_t *indexes)
void mp_seq_multiply(const void *items, size_t item_sz, size_t len, size_t times, void *dest)
bool mp_seq_cmp_bytes(mp_uint_t op, const byte *data1, size_t len1, const byte *data2, size_t len2)
mp_obj_t mp_seq_count_obj(const mp_obj_t *items, size_t len, mp_obj_t value)
NORETURN void mp_raise_ValueError(const char *msg)
LIBA_BEGIN_DECLS int memcmp(const void *s1, const void *s2, size_t n)
void mp_obj_slice_get(mp_obj_t self_in, mp_obj_t *start, mp_obj_t *stop, mp_obj_t *step)
mp_obj_t mp_seq_index_obj(const mp_obj_t *items, size_t len, size_t n_args, const mp_obj_t *args)
void * memcpy(void *dst, const void *src, size_t n)