Index: src/type-info.cc |
diff --git a/src/type-info.cc b/src/type-info.cc |
index c010533738fb155675c6ea6c5e82e371c3cd1877..6282ef68f90acc6f6e3b74aab049704dc6f42699 100644 |
--- a/src/type-info.cc |
+++ b/src/type-info.cc |
@@ -434,20 +434,21 @@ void TypeFeedbackOracle::GetRelocInfos(Handle<Code> code, |
void TypeFeedbackOracle::CreateDictionary(Handle<Code> code, |
ZoneList<RelocInfo>* infos) { |
AllowHeapAllocation allocation_allowed; |
- byte* old_start = code->instruction_start(); |
+ Code* old_code = *code; |
dictionary_ = |
isolate()->factory()->NewUnseededNumberDictionary(infos->length()); |
- byte* new_start = code->instruction_start(); |
- RelocateRelocInfos(infos, old_start, new_start); |
+ RelocateRelocInfos(infos, old_code, *code); |
} |
void TypeFeedbackOracle::RelocateRelocInfos(ZoneList<RelocInfo>* infos, |
- byte* old_start, |
- byte* new_start) { |
+ Code* old_code, |
+ Code* new_code) { |
for (int i = 0; i < infos->length(); i++) { |
RelocInfo* info = &(*infos)[i]; |
- info->set_pc(new_start + (info->pc() - old_start)); |
+ info->set_host(new_code); |
+ info->set_pc(new_code->instruction_start() + |
+ (info->pc() - old_code->instruction_start())); |
} |
} |