Index: src/deoptimizer.cc |
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
index 6fe51bb3aff48ead9cde4b6b4139bf093a5c468c..873e4627cf60f6cc24caa50a618a43e4feef118e 100644 |
--- a/src/deoptimizer.cc |
+++ b/src/deoptimizer.cc |
@@ -2729,9 +2729,11 @@ Deoptimizer::DeoptInfo Deoptimizer::GetDeoptInfo(Code* code, Address pc) { |
return DeoptInfo(last_position, last_reason, last_deopt_id); |
} |
if (info->rmode() == RelocInfo::DEOPT_POSITION) { |
- int raw_position = static_cast<int>(info->data()); |
- last_position = raw_position ? SourcePosition::FromRaw(raw_position) |
- : SourcePosition::Unknown(); |
+ int script_offset = static_cast<int>(info->data()); |
+ it.next(); |
+ DCHECK(it.rinfo()->rmode() == RelocInfo::DEOPT_POSITION); |
+ int inlining_id = static_cast<int>(it.rinfo()->data()); |
+ last_position = SourcePosition(script_offset, inlining_id); |
} else if (info->rmode() == RelocInfo::DEOPT_ID) { |
last_deopt_id = static_cast<int>(info->data()); |
} else if (info->rmode() == RelocInfo::DEOPT_REASON) { |