Index: src/mark-compact.cc |
diff --git a/src/mark-compact.cc b/src/mark-compact.cc |
index 578d580159a21fbab3a92dd8bb109e7eb985a32c..c48f2c84c09695e66652448c137745261687f5a7 100644 |
--- a/src/mark-compact.cc |
+++ b/src/mark-compact.cc |
@@ -1067,10 +1067,11 @@ void CodeFlusher::ProcessSharedFunctionInfoCandidates() { |
void CodeFlusher::ProcessOptimizedCodeMaps() { |
static const int kEntriesStart = SharedFunctionInfo::kEntriesStart; |
static const int kEntryLength = SharedFunctionInfo::kEntryLength; |
- static const int kContextOffset = 0; |
- static const int kCodeOffset = 1; |
- static const int kLiteralsOffset = 2; |
- STATIC_ASSERT(kEntryLength == 3); |
+ static const int kContextOffset = SharedFunctionInfo::kContextOffset; |
titzer
2013/12/16 11:59:34
Duplicated constants for code shortitude below. Pr
|
+ static const int kCodeOffset = SharedFunctionInfo::kCachedCodeOffset; |
+ static const int kLiteralsOffset = SharedFunctionInfo::kLiteralsOffset; |
+ static const int kOsrAstIdOffset = SharedFunctionInfo::kOsrAstIdOffset; |
+ STATIC_ASSERT(kEntryLength == 4); |
SharedFunctionInfo* holder = optimized_code_map_holder_head_; |
SharedFunctionInfo* next_holder; |
@@ -1114,6 +1115,10 @@ void CodeFlusher::ProcessOptimizedCodeMaps() { |
Marking::MarkBitFrom(HeapObject::cast(*literals_slot)))); |
isolate_->heap()->mark_compact_collector()-> |
RecordSlot(literals_slot, literals_slot, *literals_slot); |
+ |
+ // Update OSR AST id. No write barrier necessary for a smi. |
+ ASSERT(code_map->get(i + kOsrAstIdOffset)->IsSmi()); |
+ code_map->set(new_length++, code_map->get(i + kOsrAstIdOffset)); |
} |
// Trim the optimized code map if entries have been removed. |