Index: runtime/vm/simulator_arm.cc |
diff --git a/runtime/vm/simulator_arm.cc b/runtime/vm/simulator_arm.cc |
index b65ae800890376851eca09c0d21c08c9edec0eee..76292c0661fc71ef62dcbea7e8fd8a27b8516e1f 100644 |
--- a/runtime/vm/simulator_arm.cc |
+++ b/runtime/vm/simulator_arm.cc |
@@ -95,11 +95,11 @@ class SimulatorDebugger { |
bool GetFValue(char* desc, float* value); |
bool GetDValue(char* desc, double* value); |
- static intptr_t GetApproximateTokenIndex(const Code& code, uword pc); |
+ static TokenPosition GetApproximateTokenIndex(const Code& code, uword pc); |
static void PrintDartFrame(uword pc, uword fp, uword sp, |
const Function& function, |
- intptr_t token_pos, |
+ TokenPosition token_pos, |
bool is_optimized, |
bool is_inlined); |
void PrintBacktrace(); |
@@ -245,9 +245,9 @@ bool SimulatorDebugger::GetDValue(char* desc, double* value) { |
} |
-intptr_t SimulatorDebugger::GetApproximateTokenIndex(const Code& code, |
- uword pc) { |
- intptr_t token_pos = -1; |
+TokenPosition SimulatorDebugger::GetApproximateTokenIndex(const Code& code, |
+ uword pc) { |
+ TokenPosition token_pos = TokenPosition::kNoSource; |
uword pc_offset = pc - code.EntryPoint(); |
const PcDescriptors& descriptors = |
PcDescriptors::Handle(code.pc_descriptors()); |
@@ -255,7 +255,7 @@ intptr_t SimulatorDebugger::GetApproximateTokenIndex(const Code& code, |
while (iter.MoveNext()) { |
if (iter.PcOffset() == pc_offset) { |
return iter.TokenPos(); |
- } else if ((token_pos <= 0) && (iter.PcOffset() > pc_offset)) { |
+ } else if (!token_pos.IsReal() && (iter.PcOffset() > pc_offset)) { |
token_pos = iter.TokenPos(); |
} |
} |
@@ -265,7 +265,7 @@ intptr_t SimulatorDebugger::GetApproximateTokenIndex(const Code& code, |
void SimulatorDebugger::PrintDartFrame(uword pc, uword fp, uword sp, |
const Function& function, |
- intptr_t token_pos, |
+ TokenPosition token_pos, |
bool is_optimized, |
bool is_inlined) { |
const Script& script = Script::Handle(function.script()); |
@@ -273,7 +273,7 @@ void SimulatorDebugger::PrintDartFrame(uword pc, uword fp, uword sp, |
const String& url = String::Handle(script.url()); |
intptr_t line = -1; |
intptr_t column = -1; |
- if (token_pos >= 0) { |
+ if (token_pos.IsReal()) { |
script.GetTokenLocation(token_pos, &line, &column); |
} |
OS::Print("pc=0x%" Px " fp=0x%" Px " sp=0x%" Px " %s%s (%s:%" Pd |