diff --git a/py/objarray.c b/py/objarray.c index 2d210d91578d10a873c92d4981f73be904b18a63..614cbe10d63186ef554e31c20c9aeca7cd023868 100644 --- a/py/objarray.c +++ b/py/objarray.c @@ -27,6 +27,7 @@ #include <string.h> #include <assert.h> +#include <stdint.h> #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 fb7e1dfbf277c196eb49c86d7a8be2b1d279b00b..b73a5e9ea992e1132528a17b8ace750dd126eaa9 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--; }