Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 2f0e817702f702905cbd27c9b2d5eca53ad41cac..2f983dcde028fe75f97c59fa50cf2e93aed7c608 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -4047,20 +4047,12 @@ MaybeObject* Heap::CreateCode(const CodeDesc& desc, |
bool immovable, |
bool crankshafted, |
int prologue_offset) { |
- // Allocate ByteArray and ConstantPoolArray before the Code object, so that we |
- // do not risk leaving uninitialized Code object (and breaking the heap). |
+ // Allocate ByteArray before the Code object, so that we do not risk |
+ // leaving uninitialized Code object (and breaking the heap). |
ByteArray* reloc_info; |
MaybeObject* maybe_reloc_info = AllocateByteArray(desc.reloc_size, TENURED); |
if (!maybe_reloc_info->To(&reloc_info)) return maybe_reloc_info; |
- ConstantPoolArray* constant_pool; |
- if (FLAG_enable_ool_constant_pool) { |
- MaybeObject* maybe_constant_pool = desc.origin->AllocateConstantPool(this); |
- if (!maybe_constant_pool->To(&constant_pool)) return maybe_constant_pool; |
- } else { |
- constant_pool = empty_constant_pool_array(); |
- } |
- |
// Compute size. |
int body_size = RoundUp(desc.instr_size, kObjectAlignment); |
int obj_size = Code::SizeFor(body_size); |
@@ -4107,11 +4099,7 @@ MaybeObject* Heap::CreateCode(const CodeDesc& desc, |
if (code->kind() == Code::OPTIMIZED_FUNCTION) { |
code->set_marked_for_deoptimization(false); |
} |
- |
- if (FLAG_enable_ool_constant_pool) { |
- desc.origin->PopulateConstantPool(constant_pool); |
- } |
- code->set_constant_pool(constant_pool); |
+ code->set_constant_pool(empty_constant_pool_array()); |
#ifdef ENABLE_DEBUGGER_SUPPORT |
if (code->kind() == Code::FUNCTION) { |
@@ -4142,20 +4130,9 @@ MaybeObject* Heap::CreateCode(const CodeDesc& desc, |
MaybeObject* Heap::CopyCode(Code* code) { |
- MaybeObject* maybe_result; |
- Object* new_constant_pool; |
- if (FLAG_enable_ool_constant_pool && |
- code->constant_pool() != empty_constant_pool_array()) { |
- // Copy the constant pool, since edits to the copied code may modify |
- // the constant pool. |
- maybe_result = CopyConstantPoolArray(code->constant_pool()); |
- if (!maybe_result->ToObject(&new_constant_pool)) return maybe_result; |
- } else { |
- new_constant_pool = empty_constant_pool_array(); |
- } |
- |
// Allocate an object the same size as the code object. |
int obj_size = code->Size(); |
+ MaybeObject* maybe_result; |
if (obj_size > code_space()->AreaSize()) { |
maybe_result = lo_space_->AllocateRaw(obj_size, EXECUTABLE); |
} else { |
@@ -4169,12 +4146,8 @@ MaybeObject* Heap::CopyCode(Code* code) { |
Address old_addr = code->address(); |
Address new_addr = reinterpret_cast<HeapObject*>(result)->address(); |
CopyBlock(new_addr, old_addr, obj_size); |
- Code* new_code = Code::cast(result); |
- |
- // Update the constant pool. |
- new_code->set_constant_pool(new_constant_pool); |
- |
// Relocate the copy. |
+ Code* new_code = Code::cast(result); |
ASSERT(!isolate_->code_range()->exists() || |
isolate_->code_range()->contains(code->address())); |
new_code->Relocate(new_addr - old_addr); |
@@ -4183,8 +4156,8 @@ MaybeObject* Heap::CopyCode(Code* code) { |
MaybeObject* Heap::CopyCode(Code* code, Vector<byte> reloc_info) { |
- // Allocate ByteArray and ConstantPoolArray before the Code object, so that we |
- // do not risk leaving uninitialized Code object (and breaking the heap). |
+ // Allocate ByteArray before the Code object, so that we do not risk |
+ // leaving uninitialized Code object (and breaking the heap). |
Object* reloc_info_array; |
{ MaybeObject* maybe_reloc_info_array = |
AllocateByteArray(reloc_info.length(), TENURED); |
@@ -4192,18 +4165,6 @@ MaybeObject* Heap::CopyCode(Code* code, Vector<byte> reloc_info) { |
return maybe_reloc_info_array; |
} |
} |
- Object* new_constant_pool; |
- if (FLAG_enable_ool_constant_pool && |
- code->constant_pool() != empty_constant_pool_array()) { |
- // Copy the constant pool, since edits to the copied code may modify |
- // the constant pool. |
- MaybeObject* maybe_constant_pool = |
- CopyConstantPoolArray(code->constant_pool()); |
- if (!maybe_constant_pool->ToObject(&new_constant_pool)) |
- return maybe_constant_pool; |
- } else { |
- new_constant_pool = empty_constant_pool_array(); |
- } |
int new_body_size = RoundUp(code->instruction_size(), kObjectAlignment); |
@@ -4233,9 +4194,6 @@ MaybeObject* Heap::CopyCode(Code* code, Vector<byte> reloc_info) { |
Code* new_code = Code::cast(result); |
new_code->set_relocation_info(ByteArray::cast(reloc_info_array)); |
- // Update constant pool. |
- new_code->set_constant_pool(new_constant_pool); |
- |
// Copy patched rinfo. |
CopyBytes(new_code->relocation_start(), |
reloc_info.start(), |
@@ -5352,7 +5310,7 @@ MaybeObject* Heap::AllocateConstantPoolArray(int number_of_int64_entries, |
} |
if (number_of_heap_ptr_entries > 0) { |
int offset = |
- constant_pool->OffsetOfElementAt(constant_pool->first_heap_ptr_index()); |
+ constant_pool->OffsetOfElementAt(constant_pool->first_code_ptr_index()); |
MemsetPointer( |
HeapObject::RawField(constant_pool, offset), |
undefined_value(), |