| Index: src/wasm/ast-decoder.cc
|
| diff --git a/src/wasm/ast-decoder.cc b/src/wasm/ast-decoder.cc
|
| index 4f8510a711e30fb1365fd27062585d5149566ae4..ef83c6774d4e0c36f197d08bacdae31a80b04eb9 100644
|
| --- a/src/wasm/ast-decoder.cc
|
| +++ b/src/wasm/ast-decoder.cc
|
| @@ -259,7 +259,7 @@ class WasmDecoder : public Decoder {
|
| return true;
|
| }
|
|
|
| - int OpcodeArity(const byte* pc) {
|
| + unsigned OpcodeArity(const byte* pc) {
|
| #define DECLARE_ARITY(name, ...) \
|
| static const LocalType kTypes_##name[] = {__VA_ARGS__}; \
|
| static const int kArity_##name = \
|
| @@ -340,7 +340,7 @@ class WasmDecoder : public Decoder {
|
| }
|
| }
|
|
|
| - int OpcodeLength(const byte* pc) {
|
| + unsigned OpcodeLength(const byte* pc) {
|
| switch (static_cast<WasmOpcode>(*pc)) {
|
| #define DECLARE_OPCODE_CASE(name, opcode, sig) case kExpr##name:
|
| FOREACH_LOAD_MEM_OPCODE(DECLARE_OPCODE_CASE)
|
| @@ -621,7 +621,7 @@ class SR_WasmDecoder : public WasmDecoder {
|
| if (pc_ >= limit_) return; // Nothing to do.
|
|
|
| while (true) { // decoding loop.
|
| - int len = 1;
|
| + unsigned len = 1;
|
| WasmOpcode opcode = static_cast<WasmOpcode>(*pc_);
|
| TRACE(" @%-6d #%02x:%-20s|", startrel(pc_), opcode,
|
| WasmOpcodes::ShortOpcodeName(opcode));
|
| @@ -1455,9 +1455,9 @@ class SR_WasmDecoder : public WasmDecoder {
|
| new (zone_) BitVector(static_cast<int>(local_type_vec_.size()), zone_);
|
| int depth = 0;
|
| // Iteratively process all AST nodes nested inside the loop.
|
| - while (pc < limit_) {
|
| + while (pc < limit_ && ok()) {
|
| WasmOpcode opcode = static_cast<WasmOpcode>(*pc);
|
| - int length = 1;
|
| + unsigned length = 1;
|
| switch (opcode) {
|
| case kExprLoop:
|
| case kExprIf:
|
| @@ -1485,7 +1485,7 @@ class SR_WasmDecoder : public WasmDecoder {
|
| if (depth <= 0) break;
|
| pc += length;
|
| }
|
| - return assigned;
|
| + return ok() ? assigned : nullptr;
|
| }
|
|
|
| inline wasm::WasmCodePosition position() {
|
| @@ -1535,12 +1535,12 @@ std::ostream& operator<<(std::ostream& os, const Tree& tree) {
|
| return os;
|
| }
|
|
|
| -int OpcodeLength(const byte* pc, const byte* end) {
|
| +unsigned OpcodeLength(const byte* pc, const byte* end) {
|
| WasmDecoder decoder(nullptr, nullptr, pc, end);
|
| return decoder.OpcodeLength(pc);
|
| }
|
|
|
| -int OpcodeArity(const byte* pc, const byte* end) {
|
| +unsigned OpcodeArity(const byte* pc, const byte* end) {
|
| WasmDecoder decoder(nullptr, nullptr, pc, end);
|
| return decoder.OpcodeArity(pc);
|
| }
|
| @@ -1588,7 +1588,7 @@ bool PrintAst(base::AccountingAllocator* allocator, const FunctionBody& body,
|
| ++line_nr;
|
| unsigned control_depth = 0;
|
| while (pc < body.end) {
|
| - size_t length = decoder.OpcodeLength(pc);
|
| + unsigned length = decoder.OpcodeLength(pc);
|
|
|
| WasmOpcode opcode = static_cast<WasmOpcode>(*pc);
|
| if (opcode == kExprElse) control_depth--;
|
|
|