Fix errors after enabling -Wpointer-arith

This commit is contained in:
stijn 2014-10-28 17:20:52 +01:00 committed by Damien George
parent 4e54c876a7
commit 49c47da804
2 changed files with 6 additions and 5 deletions

View File

@ -27,6 +27,7 @@
#include <string.h> #include <string.h>
#include <assert.h> #include <assert.h>
#include <stdint.h>
#include "mpconfig.h" #include "mpconfig.h"
#include "nlr.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 #endif
} else { } else {
res = array_new(o->typecode, slice.stop - slice.start); 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; return res;
#endif #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 // read-only memoryview
return 1; return 1;
} }
bufinfo->buf += (mp_uint_t)o->free * sz; bufinfo->buf = (uint8_t*)bufinfo->buf + (mp_uint_t)o->free * sz;
} }
#endif #endif
return 0; return 0;

View File

@ -65,10 +65,10 @@ void *memcpy(void *dst, const void *src, size_t n) {
} }
void *memmove(void *dest, 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 // need to copy backwards
uint8_t *d = dest + n - 1; uint8_t *d = (uint8_t*)dest + n - 1;
const uint8_t *s = src + n - 1; const uint8_t *s = (const uint8_t*)src + n - 1;
for (; n > 0; n--) { for (; n > 0; n--) {
*d-- = *s--; *d-- = *s--;
} }