diff --git a/py/objarray.c b/py/objarray.c index 2d210d9157..614cbe10d6 100644 --- a/py/objarray.c +++ b/py/objarray.c @@ -27,6 +27,7 @@ #include #include +#include #include "mpconfig.h" #include "nlr.h" @@ -292,7 +293,7 @@ STATIC mp_obj_t array_subscr(mp_obj_t self_in, mp_obj_t index_in, mp_obj_t value #endif } else { res = array_new(o->typecode, slice.stop - slice.start); - memcpy(res->items, o->items + slice.start * sz, (slice.stop - slice.start) * sz); + memcpy(res->items, (uint8_t*)o->items + slice.start * sz, (slice.stop - slice.start) * sz); } return res; #endif @@ -331,7 +332,7 @@ STATIC mp_int_t array_get_buffer(mp_obj_t o_in, mp_buffer_info_t *bufinfo, mp_ui // read-only memoryview return 1; } - bufinfo->buf += (mp_uint_t)o->free * sz; + bufinfo->buf = (uint8_t*)bufinfo->buf + (mp_uint_t)o->free * sz; } #endif return 0; diff --git a/stmhal/string0.c b/stmhal/string0.c index fb7e1dfbf2..b73a5e9ea9 100644 --- a/stmhal/string0.c +++ b/stmhal/string0.c @@ -65,10 +65,10 @@ void *memcpy(void *dst, const void *src, size_t n) { } void *memmove(void *dest, const void *src, size_t n) { - if (src < dest && dest < src + n) { + if (src < dest && (uint8_t*)dest < (const uint8_t*)src + n) { // need to copy backwards - uint8_t *d = dest + n - 1; - const uint8_t *s = src + n - 1; + uint8_t *d = (uint8_t*)dest + n - 1; + const uint8_t *s = (const uint8_t*)src + n - 1; for (; n > 0; n--) { *d-- = *s--; }