summaryrefslogtreecommitdiff
path: root/src/vector.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/vector.cc')
-rw-r--r--src/vector.cc15
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;
}