diff options
Diffstat (limited to 'src/vector.cc')
-rw-r--r-- | src/vector.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/vector.cc b/src/vector.cc index b7135e67..25254adf 100644 --- a/src/vector.cc +++ b/src/vector.cc @@ -40,8 +40,9 @@ void wabt_resize_vector(void** data, size_t old_size = *size; wabt_ensure_capacity(data, capacity, desired_size, elt_byte_size); if (desired_size > old_size) { - memset((void*)((size_t)*data + old_size * elt_byte_size), 0, - (desired_size - old_size) * elt_byte_size); + memset(reinterpret_cast<void*>(reinterpret_cast<intptr_t>(*data) + + old_size * elt_byte_size), + 0, (desired_size - old_size) * elt_byte_size); } *size = desired_size; } @@ -51,7 +52,8 @@ void* wabt_append_element(void** data, size_t* capacity, size_t elt_byte_size) { wabt_ensure_capacity(data, capacity, *size + 1, elt_byte_size); - void* p = (void*)((size_t)*data + (*size)++ * elt_byte_size); + void* p = reinterpret_cast<void*>(reinterpret_cast<intptr_t>(*data) + + (*size)++ * elt_byte_size); memset(p, 0, elt_byte_size); return p; } @@ -59,11 +61,12 @@ void* wabt_append_element(void** data, void wabt_extend_elements(void** dst, size_t* dst_size, size_t* dst_capacity, - const void** src, + void* const* src, size_t src_size, size_t elt_byte_size) { wabt_ensure_capacity(dst, dst_capacity, *dst_size + src_size, elt_byte_size); - memcpy((void*)((size_t)*dst + (*dst_size * elt_byte_size)), *src, - src_size * elt_byte_size); + memcpy(reinterpret_cast<void*>(reinterpret_cast<intptr_t>(*dst) + + (*dst_size * elt_byte_size)), + *src, src_size * elt_byte_size); *dst_size += src_size; } |