Index: src/wasm/wasm-debug.cc |
diff --git a/src/wasm/wasm-debug.cc b/src/wasm/wasm-debug.cc |
index 0327c1f1414166e6946096f5a19b4eb84b04f808..fe6d5fd584c32f51f8bddc11cd8088e95ca5d2a0 100644 |
--- a/src/wasm/wasm-debug.cc |
+++ b/src/wasm/wasm-debug.cc |
@@ -133,11 +133,11 @@ class InterpreterHandle { |
ScopedVector<WasmVal> wasm_args(num_params); |
uint8_t* arg_buf_ptr = arg_buffer; |
for (int i = 0; i < num_params; ++i) { |
- int param_size = 1 << ElementSizeLog2Of(sig->GetParam(i)); |
+ uint32_t param_size = 1 << ElementSizeLog2Of(sig->GetParam(i)); |
#define CASE_ARG_TYPE(type, ctype) \ |
case type: \ |
DCHECK_EQ(param_size, sizeof(ctype)); \ |
- wasm_args[i] = WasmVal(*reinterpret_cast<ctype*>(arg_buf_ptr)); \ |
+ wasm_args[i] = WasmVal(ReadUnalignedValue<ctype>(arg_buf_ptr)); \ |
break; |
switch (sig->GetParam(i)) { |
CASE_ARG_TYPE(kWasmI32, uint32_t) |
@@ -148,7 +148,7 @@ class InterpreterHandle { |
default: |
UNREACHABLE(); |
} |
- arg_buf_ptr += RoundUpToMultipleOfPowOf2(param_size, 8); |
+ arg_buf_ptr += param_size; |
} |
WasmInterpreter::Thread* thread = interpreter_.GetThread(0); |
@@ -197,7 +197,7 @@ class InterpreterHandle { |
#define CASE_RET_TYPE(type, ctype) \ |
case type: \ |
DCHECK_EQ(1 << ElementSizeLog2Of(sig->GetReturn(0)), sizeof(ctype)); \ |
- *reinterpret_cast<ctype*>(arg_buffer) = ret_val.to<ctype>(); \ |
+ WriteUnalignedValue<ctype>(arg_buffer, ret_val.to<ctype>()); \ |
break; |
switch (sig->GetReturn(0)) { |
CASE_RET_TYPE(kWasmI32, uint32_t) |