py/objarray: Convert mp_uint_t to size_t where appropriate.
This commit is contained in:
parent
c0d9500eee
commit
ccc5254224
6
py/obj.h
6
py/obj.h
@ -613,8 +613,8 @@ mp_obj_t mp_obj_new_int_from_ull(unsigned long long val); // this must return a
|
|||||||
mp_obj_t mp_obj_new_str(const char* data, size_t len, bool make_qstr_if_not_already);
|
mp_obj_t mp_obj_new_str(const char* data, size_t len, bool make_qstr_if_not_already);
|
||||||
mp_obj_t mp_obj_new_str_from_vstr(const mp_obj_type_t *type, vstr_t *vstr);
|
mp_obj_t mp_obj_new_str_from_vstr(const mp_obj_type_t *type, vstr_t *vstr);
|
||||||
mp_obj_t mp_obj_new_bytes(const byte* data, size_t len);
|
mp_obj_t mp_obj_new_bytes(const byte* data, size_t len);
|
||||||
mp_obj_t mp_obj_new_bytearray(mp_uint_t n, void *items);
|
mp_obj_t mp_obj_new_bytearray(size_t n, void *items);
|
||||||
mp_obj_t mp_obj_new_bytearray_by_ref(mp_uint_t n, void *items);
|
mp_obj_t mp_obj_new_bytearray_by_ref(size_t n, void *items);
|
||||||
#if MICROPY_PY_BUILTINS_FLOAT
|
#if MICROPY_PY_BUILTINS_FLOAT
|
||||||
mp_obj_t mp_obj_new_int_from_float(mp_float_t val);
|
mp_obj_t mp_obj_new_int_from_float(mp_float_t val);
|
||||||
mp_obj_t mp_obj_new_complex(mp_float_t real, mp_float_t imag);
|
mp_obj_t mp_obj_new_complex(mp_float_t real, mp_float_t imag);
|
||||||
@ -639,7 +639,7 @@ mp_obj_t mp_obj_new_super(mp_obj_t type, mp_obj_t obj);
|
|||||||
mp_obj_t mp_obj_new_bound_meth(mp_obj_t meth, mp_obj_t self);
|
mp_obj_t mp_obj_new_bound_meth(mp_obj_t meth, mp_obj_t self);
|
||||||
mp_obj_t mp_obj_new_getitem_iter(mp_obj_t *args);
|
mp_obj_t mp_obj_new_getitem_iter(mp_obj_t *args);
|
||||||
mp_obj_t mp_obj_new_module(qstr module_name);
|
mp_obj_t mp_obj_new_module(qstr module_name);
|
||||||
mp_obj_t mp_obj_new_memoryview(byte typecode, mp_uint_t nitems, void *items);
|
mp_obj_t mp_obj_new_memoryview(byte typecode, size_t nitems, void *items);
|
||||||
|
|
||||||
mp_obj_type_t *mp_obj_get_type(mp_const_obj_t o_in);
|
mp_obj_type_t *mp_obj_get_type(mp_const_obj_t o_in);
|
||||||
const char *mp_obj_get_type_str(mp_const_obj_t o_in);
|
const char *mp_obj_get_type_str(mp_const_obj_t o_in);
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
#if MICROPY_PY_BUILTINS_MEMORYVIEW
|
#if MICROPY_PY_BUILTINS_MEMORYVIEW
|
||||||
#define TYPECODE_MASK (0x7f)
|
#define TYPECODE_MASK (0x7f)
|
||||||
#else
|
#else
|
||||||
#define TYPECODE_MASK (~(mp_uint_t)0)
|
#define TYPECODE_MASK (~(size_t)0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
STATIC mp_obj_t array_iterator_new(mp_obj_t array_in);
|
STATIC mp_obj_t array_iterator_new(mp_obj_t array_in);
|
||||||
@ -78,7 +78,7 @@ STATIC void array_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t
|
|||||||
mp_printf(print, "array('%c'", o->typecode);
|
mp_printf(print, "array('%c'", o->typecode);
|
||||||
if (o->len > 0) {
|
if (o->len > 0) {
|
||||||
mp_print_str(print, ", [");
|
mp_print_str(print, ", [");
|
||||||
for (mp_uint_t i = 0; i < o->len; i++) {
|
for (size_t i = 0; i < o->len; i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
mp_print_str(print, ", ");
|
mp_print_str(print, ", ");
|
||||||
}
|
}
|
||||||
@ -92,7 +92,7 @@ STATIC void array_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MICROPY_PY_BUILTINS_BYTEARRAY || MICROPY_PY_ARRAY
|
#if MICROPY_PY_BUILTINS_BYTEARRAY || MICROPY_PY_ARRAY
|
||||||
STATIC mp_obj_array_t *array_new(char typecode, mp_uint_t n) {
|
STATIC mp_obj_array_t *array_new(char typecode, size_t n) {
|
||||||
int typecode_size = mp_binary_get_size('@', typecode, NULL);
|
int typecode_size = mp_binary_get_size('@', typecode, NULL);
|
||||||
mp_obj_array_t *o = m_new_obj(mp_obj_array_t);
|
mp_obj_array_t *o = m_new_obj(mp_obj_array_t);
|
||||||
#if MICROPY_PY_BUILTINS_BYTEARRAY && MICROPY_PY_ARRAY
|
#if MICROPY_PY_BUILTINS_BYTEARRAY && MICROPY_PY_ARRAY
|
||||||
@ -124,13 +124,13 @@ STATIC mp_obj_t array_construct(char typecode, mp_obj_t initializer) {
|
|||||||
// construct array from raw bytes
|
// construct array from raw bytes
|
||||||
// we round-down the len to make it a multiple of sz (CPython raises error)
|
// we round-down the len to make it a multiple of sz (CPython raises error)
|
||||||
size_t sz = mp_binary_get_size('@', typecode, NULL);
|
size_t sz = mp_binary_get_size('@', typecode, NULL);
|
||||||
mp_uint_t len = bufinfo.len / sz;
|
size_t len = bufinfo.len / sz;
|
||||||
mp_obj_array_t *o = array_new(typecode, len);
|
mp_obj_array_t *o = array_new(typecode, len);
|
||||||
memcpy(o->items, bufinfo.buf, len * sz);
|
memcpy(o->items, bufinfo.buf, len * sz);
|
||||||
return MP_OBJ_FROM_PTR(o);
|
return MP_OBJ_FROM_PTR(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_uint_t len;
|
size_t len;
|
||||||
// Try to create array of exact len if initializer len is known
|
// Try to create array of exact len if initializer len is known
|
||||||
mp_obj_t len_in = mp_obj_len_maybe(initializer);
|
mp_obj_t len_in = mp_obj_len_maybe(initializer);
|
||||||
if (len_in == MP_OBJ_NULL) {
|
if (len_in == MP_OBJ_NULL) {
|
||||||
@ -143,7 +143,7 @@ STATIC mp_obj_t array_construct(char typecode, mp_obj_t initializer) {
|
|||||||
|
|
||||||
mp_obj_t iterable = mp_getiter(initializer);
|
mp_obj_t iterable = mp_getiter(initializer);
|
||||||
mp_obj_t item;
|
mp_obj_t item;
|
||||||
mp_uint_t i = 0;
|
size_t i = 0;
|
||||||
while ((item = mp_iternext(iterable)) != MP_OBJ_STOP_ITERATION) {
|
while ((item = mp_iternext(iterable)) != MP_OBJ_STOP_ITERATION) {
|
||||||
if (len == 0) {
|
if (len == 0) {
|
||||||
array_append(MP_OBJ_FROM_PTR(array), item);
|
array_append(MP_OBJ_FROM_PTR(array), item);
|
||||||
@ -198,7 +198,7 @@ STATIC mp_obj_t bytearray_make_new(const mp_obj_type_t *type_in, size_t n_args,
|
|||||||
|
|
||||||
#if MICROPY_PY_BUILTINS_MEMORYVIEW
|
#if MICROPY_PY_BUILTINS_MEMORYVIEW
|
||||||
|
|
||||||
mp_obj_t mp_obj_new_memoryview(byte typecode, mp_uint_t nitems, void *items) {
|
mp_obj_t mp_obj_new_memoryview(byte typecode, size_t nitems, void *items) {
|
||||||
mp_obj_array_t *self = m_new_obj(mp_obj_array_t);
|
mp_obj_array_t *self = m_new_obj(mp_obj_array_t);
|
||||||
self->base.type = &mp_type_memoryview;
|
self->base.type = &mp_type_memoryview;
|
||||||
self->typecode = typecode;
|
self->typecode = typecode;
|
||||||
@ -254,7 +254,7 @@ STATIC mp_obj_t array_binary_op(mp_uint_t op, mp_obj_t lhs_in, mp_obj_t rhs_in)
|
|||||||
size_t sz = mp_binary_get_size('@', lhs_bufinfo.typecode, NULL);
|
size_t sz = mp_binary_get_size('@', lhs_bufinfo.typecode, NULL);
|
||||||
|
|
||||||
// convert byte count to element count (in case rhs is not multiple of sz)
|
// convert byte count to element count (in case rhs is not multiple of sz)
|
||||||
mp_uint_t rhs_len = rhs_bufinfo.len / sz;
|
size_t rhs_len = rhs_bufinfo.len / sz;
|
||||||
|
|
||||||
// note: lhs->len is element count of lhs, lhs_bufinfo.len is byte count
|
// note: lhs->len is element count of lhs, lhs_bufinfo.len is byte count
|
||||||
mp_obj_array_t *res = array_new(lhs_bufinfo.typecode, lhs->len + rhs_len);
|
mp_obj_array_t *res = array_new(lhs_bufinfo.typecode, lhs->len + rhs_len);
|
||||||
@ -345,7 +345,7 @@ STATIC mp_obj_t array_extend(mp_obj_t self_in, mp_obj_t arg_in) {
|
|||||||
size_t sz = mp_binary_get_size('@', self->typecode, NULL);
|
size_t sz = mp_binary_get_size('@', self->typecode, NULL);
|
||||||
|
|
||||||
// convert byte count to element count
|
// convert byte count to element count
|
||||||
mp_uint_t len = arg_bufinfo.len / sz;
|
size_t len = arg_bufinfo.len / sz;
|
||||||
|
|
||||||
// make sure we have enough room to extend
|
// make sure we have enough room to extend
|
||||||
// TODO: alloc policy; at the moment we go conservative
|
// TODO: alloc policy; at the moment we go conservative
|
||||||
@ -384,7 +384,7 @@ STATIC mp_obj_t array_subscr(mp_obj_t self_in, mp_obj_t index_in, mp_obj_t value
|
|||||||
if (value != MP_OBJ_SENTINEL) {
|
if (value != MP_OBJ_SENTINEL) {
|
||||||
#if MICROPY_PY_ARRAY_SLICE_ASSIGN
|
#if MICROPY_PY_ARRAY_SLICE_ASSIGN
|
||||||
// Assign
|
// Assign
|
||||||
mp_uint_t src_len;
|
size_t src_len;
|
||||||
void *src_items;
|
void *src_items;
|
||||||
size_t item_sz = mp_binary_get_size('@', o->typecode & TYPECODE_MASK, NULL);
|
size_t item_sz = mp_binary_get_size('@', o->typecode & TYPECODE_MASK, NULL);
|
||||||
if (MP_OBJ_IS_OBJ(value) && ((mp_obj_base_t*)MP_OBJ_TO_PTR(value))->type->subscr == array_subscr) {
|
if (MP_OBJ_IS_OBJ(value) && ((mp_obj_base_t*)MP_OBJ_TO_PTR(value))->type->subscr == array_subscr) {
|
||||||
@ -501,7 +501,7 @@ STATIC mp_int_t array_get_buffer(mp_obj_t o_in, mp_buffer_info_t *bufinfo, mp_ui
|
|||||||
// read-only memoryview
|
// read-only memoryview
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
bufinfo->buf = (uint8_t*)bufinfo->buf + (mp_uint_t)o->free * sz;
|
bufinfo->buf = (uint8_t*)bufinfo->buf + (size_t)o->free * sz;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
(void)flags;
|
(void)flags;
|
||||||
@ -562,20 +562,20 @@ const mp_obj_type_t mp_type_memoryview = {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* unused
|
/* unused
|
||||||
mp_uint_t mp_obj_array_len(mp_obj_t self_in) {
|
size_t mp_obj_array_len(mp_obj_t self_in) {
|
||||||
return ((mp_obj_array_t *)self_in)->len;
|
return ((mp_obj_array_t *)self_in)->len;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if MICROPY_PY_BUILTINS_BYTEARRAY
|
#if MICROPY_PY_BUILTINS_BYTEARRAY
|
||||||
mp_obj_t mp_obj_new_bytearray(mp_uint_t n, void *items) {
|
mp_obj_t mp_obj_new_bytearray(size_t n, void *items) {
|
||||||
mp_obj_array_t *o = array_new(BYTEARRAY_TYPECODE, n);
|
mp_obj_array_t *o = array_new(BYTEARRAY_TYPECODE, n);
|
||||||
memcpy(o->items, items, n);
|
memcpy(o->items, items, n);
|
||||||
return MP_OBJ_FROM_PTR(o);
|
return MP_OBJ_FROM_PTR(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create bytearray which references specified memory area
|
// Create bytearray which references specified memory area
|
||||||
mp_obj_t mp_obj_new_bytearray_by_ref(mp_uint_t n, void *items) {
|
mp_obj_t mp_obj_new_bytearray_by_ref(size_t n, void *items) {
|
||||||
mp_obj_array_t *o = m_new_obj(mp_obj_array_t);
|
mp_obj_array_t *o = m_new_obj(mp_obj_array_t);
|
||||||
o->base.type = &mp_type_bytearray;
|
o->base.type = &mp_type_bytearray;
|
||||||
o->typecode = BYTEARRAY_TYPECODE;
|
o->typecode = BYTEARRAY_TYPECODE;
|
||||||
@ -592,8 +592,8 @@ mp_obj_t mp_obj_new_bytearray_by_ref(mp_uint_t n, void *items) {
|
|||||||
typedef struct _mp_obj_array_it_t {
|
typedef struct _mp_obj_array_it_t {
|
||||||
mp_obj_base_t base;
|
mp_obj_base_t base;
|
||||||
mp_obj_array_t *array;
|
mp_obj_array_t *array;
|
||||||
mp_uint_t offset;
|
size_t offset;
|
||||||
mp_uint_t cur;
|
size_t cur;
|
||||||
} mp_obj_array_it_t;
|
} mp_obj_array_it_t;
|
||||||
|
|
||||||
STATIC mp_obj_t array_it_iternext(mp_obj_t self_in) {
|
STATIC mp_obj_t array_it_iternext(mp_obj_t self_in) {
|
||||||
|
@ -32,11 +32,11 @@
|
|||||||
|
|
||||||
typedef struct _mp_obj_array_t {
|
typedef struct _mp_obj_array_t {
|
||||||
mp_obj_base_t base;
|
mp_obj_base_t base;
|
||||||
mp_uint_t typecode : 8;
|
size_t typecode : 8;
|
||||||
// free is number of unused elements after len used elements
|
// free is number of unused elements after len used elements
|
||||||
// alloc size = len + free
|
// alloc size = len + free
|
||||||
mp_uint_t free : (8 * sizeof(mp_uint_t) - 8);
|
size_t free : (8 * sizeof(size_t) - 8);
|
||||||
mp_uint_t len; // in elements
|
size_t len; // in elements
|
||||||
void *items;
|
void *items;
|
||||||
} mp_obj_array_t;
|
} mp_obj_array_t;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user