diff options
Diffstat (limited to 'src/binary-reader-objdump.cc')
-rw-r--r-- | src/binary-reader-objdump.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc index 77d207d2..f03283e7 100644 --- a/src/binary-reader-objdump.cc +++ b/src/binary-reader-objdump.cc @@ -475,6 +475,7 @@ class BinaryReaderObjdumpDisassemble : public BinaryReaderObjdumpBase { Result OnBrTableExpr(Index num_targets, Index* target_depths, Index default_target_depth) override; + Result OnDelegateExpr(Index) override; Result OnEndExpr() override; Result OnEndFunc() override; @@ -595,6 +596,7 @@ void BinaryReaderObjdumpDisassemble::LogOpcode(size_t data_size, switch (current_opcode) { case Opcode::Else: case Opcode::Catch: + case Opcode::Unwind: indent_level--; default: break; @@ -741,6 +743,15 @@ Result BinaryReaderObjdumpDisassemble::OnBrTableExpr( return Result::Ok; } +Result BinaryReaderObjdumpDisassemble::OnDelegateExpr(Index depth) { + // Because `delegate` ends the block we need to dedent here, and + // we don't need to dedent it in LogOpcode. + if (indent_level > 0) { + indent_level--; + } + return Result::Ok; +} + Result BinaryReaderObjdumpDisassemble::OnEndFunc() { LogOpcode(0, nullptr); return Result::Ok; |