Fix errors after enabling -Wpointer-arith
This commit is contained in:
parent
4e54c876a7
commit
49c47da804
|
@ -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;
|
||||
|
|
|
@ -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--;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue