Index: src/wasm/wasm-interpreter.cc |
diff --git a/src/wasm/wasm-interpreter.cc b/src/wasm/wasm-interpreter.cc |
index 05bcf8f597be30ccadcf3483accdfb15018f1248..c8700cad9c239c070407aa8ec2580a570465c035 100644 |
--- a/src/wasm/wasm-interpreter.cc |
+++ b/src/wasm/wasm-interpreter.cc |
@@ -928,7 +928,7 @@ class CodeMap { |
InterpreterCode* Preprocess(InterpreterCode* code) { |
if (code->targets == nullptr && code->start) { |
// Compute the control targets map and the local declarations. |
- CHECK(DecodeLocalDecls(code->locals, code->start, code->end)); |
+ CHECK(DecodeLocalDecls(&code->locals, code->start, code->end)); |
code->targets = new (zone_) ControlTransfers( |
zone_, &code->locals, code->orig_start, code->orig_end); |
} |
@@ -1070,7 +1070,7 @@ class ThreadImpl : public WasmInterpreter::Thread { |
// Limit of parameters. |
sp_t plimit() { return sp + code->function->sig->parameter_count(); } |
// Limit of locals. |
- sp_t llimit() { return plimit() + code->locals.total_local_count; } |
+ sp_t llimit() { return plimit() + code->locals.type_list.size(); } |
}; |
struct Block { |
@@ -1119,9 +1119,9 @@ class ThreadImpl : public WasmInterpreter::Thread { |
} |
pc_t InitLocals(InterpreterCode* code) { |
- for (auto p : code->locals.local_types) { |
+ for (auto p : code->locals.type_list) { |
WasmVal val; |
- switch (p.first) { |
+ switch (p) { |
case kWasmI32: |
val = WasmVal(static_cast<int32_t>(0)); |
break; |
@@ -1138,9 +1138,9 @@ class ThreadImpl : public WasmInterpreter::Thread { |
UNREACHABLE(); |
break; |
} |
- stack_.insert(stack_.end(), p.second, val); |
+ stack_.push_back(val); |
} |
- return code->locals.decls_encoded_size; |
+ return code->locals.encoded_size; |
} |
void CommitPc(pc_t pc) { |
@@ -1800,7 +1800,7 @@ bool WasmInterpreter::SetBreakpoint(const WasmFunction* function, pc_t pc, |
if (!code) return false; |
size_t size = static_cast<size_t>(code->end - code->start); |
// Check bounds for {pc}. |
- if (pc < code->locals.decls_encoded_size || pc >= size) return false; |
+ if (pc < code->locals.encoded_size || pc >= size) return false; |
// Make a copy of the code before enabling a breakpoint. |
if (enabled && code->orig_start == code->start) { |
code->start = reinterpret_cast<byte*>(zone_.New(size)); |
@@ -1821,7 +1821,7 @@ bool WasmInterpreter::GetBreakpoint(const WasmFunction* function, pc_t pc) { |
if (!code) return false; |
size_t size = static_cast<size_t>(code->end - code->start); |
// Check bounds for {pc}. |
- if (pc < code->locals.decls_encoded_size || pc >= size) return false; |
+ if (pc < code->locals.encoded_size || pc >= size) return false; |
// Check if a breakpoint is present at that place in the code. |
return code->start[pc] == kInternalBreakpoint; |
} |