Chromium Code Reviews| Index: runtime/vm/compiler.cc |
| diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc |
| index d462881fee0e42a6bd6c5c80b6260677ed23481b..55021aa7f790443f717d4c1335a37c98ce75bc68 100644 |
| --- a/runtime/vm/compiler.cc |
| +++ b/runtime/vm/compiler.cc |
| @@ -337,9 +337,18 @@ static void DisassembleCode(const Function& function, bool optimized) { |
| const Array& deopt_info_array = Array::Handle(code.deopt_info_array()); |
| if (deopt_info_array.Length() > 0) { |
| OS::Print("DeoptInfo: {\n"); |
| - for (intptr_t i = 0; i < deopt_info_array.Length(); i++) { |
| - OS::Print(" %"Pd": %s\n", |
| - i, Object::Handle(deopt_info_array.At(i)).ToCString()); |
| + Smi& offset = Smi::Handle(); |
| + DeoptInfo& info = DeoptInfo::Handle(); |
| + Smi& reason = Smi::Handle(); |
| + intptr_t i = 0; |
|
srdjan
2012/09/28 21:00:26
You need to move the knowledge about the deopt_inf
Kevin Millikin (Google)
2012/10/01 09:38:56
I stopped short of making it a subclass of Object.
|
| + while (i < deopt_info_array.Length()) { |
| + offset ^= deopt_info_array.At(i++); |
| + info ^= deopt_info_array.At(i++); |
| + reason ^= deopt_info_array.At(i++); |
| + OS::Print("0x%"Px" %s (%s)\n", |
| + start + offset.Value(), |
| + info.ToCString(), |
| + DeoptReasonToText(reason.Value())); |
| } |
| OS::Print("}\n"); |
| } |