Index: src/heap.cc |
=================================================================== |
--- src/heap.cc (revision 3925) |
+++ src/heap.cc (working copy) |
@@ -1206,7 +1206,7 @@ |
map->set_inobject_properties(0); |
map->set_pre_allocated_property_fields(0); |
map->set_instance_descriptors(empty_descriptor_array()); |
- map->set_code_cache(empty_fixed_array()); |
+ map->set_code_cache(undefined_value()); |
map->set_unused_property_fields(0); |
map->set_bit_field(0); |
map->set_bit_field2(1 << Map::kIsExtensible); |
@@ -1221,6 +1221,16 @@ |
} |
+Object* Heap::AllocateCodeCache() { |
+ Object* result = AllocateStruct(CODE_CACHE_TYPE); |
+ if (result->IsFailure()) return result; |
+ CodeCache* code_cache = CodeCache::cast(result); |
+ code_cache->set_default_cache(empty_fixed_array()); |
+ code_cache->set_normal_type_cache(undefined_value()); |
+ return code_cache; |
+} |
+ |
+ |
const Heap::StringTypeTable Heap::string_type_table[] = { |
#define STRING_TYPE_ELEMENT(type, size, name, camel_name) \ |
{type, size, k##camel_name##MapRootIndex}, |
@@ -1277,13 +1287,13 @@ |
// Fix the instance_descriptors for the existing maps. |
meta_map()->set_instance_descriptors(empty_descriptor_array()); |
- meta_map()->set_code_cache(empty_fixed_array()); |
+ meta_map()->set_code_cache(undefined_value()); |
fixed_array_map()->set_instance_descriptors(empty_descriptor_array()); |
- fixed_array_map()->set_code_cache(empty_fixed_array()); |
+ fixed_array_map()->set_code_cache(undefined_value()); |
oddball_map()->set_instance_descriptors(empty_descriptor_array()); |
- oddball_map()->set_code_cache(empty_fixed_array()); |
+ oddball_map()->set_code_cache(undefined_value()); |
// Fix prototype object for existing maps. |
meta_map()->set_prototype(null_value()); |