| Index: runtime/vm/disassembler_arm.cc
|
| diff --git a/runtime/vm/disassembler_arm.cc b/runtime/vm/disassembler_arm.cc
|
| index 2b0c1038e58cf5e9c89e86b2e3e11959ada9737a..67c0afb814e2f321ea98f9614b8aacb44f5f99d5 100644
|
| --- a/runtime/vm/disassembler_arm.cc
|
| +++ b/runtime/vm/disassembler_arm.cc
|
| @@ -6,9 +6,9 @@
|
|
|
| #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM.
|
| #if defined(TARGET_ARCH_ARM)
|
| -
|
| #include "platform/assert.h"
|
| #include "vm/cpu.h"
|
| +#include "vm/instructions.h"
|
|
|
| namespace dart {
|
|
|
| @@ -1534,7 +1534,8 @@ void ARMDecoder::InstructionDecode(uword pc) {
|
|
|
| void Disassembler::DecodeInstruction(char* hex_buffer, intptr_t hex_size,
|
| char* human_buffer, intptr_t human_size,
|
| - int* out_instr_size, uword pc) {
|
| + int* out_instr_size, const Code& code,
|
| + Object** object, uword pc) {
|
| ARMDecoder decoder(human_buffer, human_size);
|
| decoder.InstructionDecode(pc);
|
| int32_t instruction_bits = Instr::At(pc)->InstructionBits();
|
| @@ -1542,6 +1543,14 @@ void Disassembler::DecodeInstruction(char* hex_buffer, intptr_t hex_size,
|
| if (out_instr_size) {
|
| *out_instr_size = Instr::kInstrSize;
|
| }
|
| +
|
| + *object = NULL;
|
| + if (!code.IsNull()) {
|
| + *object = &Object::Handle();
|
| + if (!DecodeLoadObjectFromPoolOrThread(pc, code, *object)) {
|
| + *object = NULL;
|
| + }
|
| + }
|
| }
|
|
|
| #endif // !PRODUCT
|
|
|