| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 2046 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2057 reinterpret_cast<Map*>(result)->set_map(raw_unchecked_meta_map()); | 2057 reinterpret_cast<Map*>(result)->set_map(raw_unchecked_meta_map()); |
| 2058 reinterpret_cast<Map*>(result)->set_instance_type(instance_type); | 2058 reinterpret_cast<Map*>(result)->set_instance_type(instance_type); |
| 2059 reinterpret_cast<Map*>(result)->set_instance_size(instance_size); | 2059 reinterpret_cast<Map*>(result)->set_instance_size(instance_size); |
| 2060 reinterpret_cast<Map*>(result)->set_visitor_id( | 2060 reinterpret_cast<Map*>(result)->set_visitor_id( |
| 2061 StaticVisitorBase::GetVisitorId(instance_type, instance_size)); | 2061 StaticVisitorBase::GetVisitorId(instance_type, instance_size)); |
| 2062 reinterpret_cast<Map*>(result)->set_inobject_properties(0); | 2062 reinterpret_cast<Map*>(result)->set_inobject_properties(0); |
| 2063 reinterpret_cast<Map*>(result)->set_pre_allocated_property_fields(0); | 2063 reinterpret_cast<Map*>(result)->set_pre_allocated_property_fields(0); |
| 2064 reinterpret_cast<Map*>(result)->set_unused_property_fields(0); | 2064 reinterpret_cast<Map*>(result)->set_unused_property_fields(0); |
| 2065 reinterpret_cast<Map*>(result)->set_bit_field(0); | 2065 reinterpret_cast<Map*>(result)->set_bit_field(0); |
| 2066 reinterpret_cast<Map*>(result)->set_bit_field2(0); | 2066 reinterpret_cast<Map*>(result)->set_bit_field2(0); |
| 2067 reinterpret_cast<Map*>(result)->set_bit_field3(0); | 2067 int bit_field3 = Map::EnumLengthBits::encode(Map::kInvalidEnumCache) | |
| 2068 Map::OwnsDescriptors::encode(true); |
| 2069 reinterpret_cast<Map*>(result)->set_bit_field3(bit_field3); |
| 2068 return result; | 2070 return result; |
| 2069 } | 2071 } |
| 2070 | 2072 |
| 2071 | 2073 |
| 2072 MaybeObject* Heap::AllocateMap(InstanceType instance_type, | 2074 MaybeObject* Heap::AllocateMap(InstanceType instance_type, |
| 2073 int instance_size, | 2075 int instance_size, |
| 2074 ElementsKind elements_kind) { | 2076 ElementsKind elements_kind) { |
| 2075 Object* result; | 2077 Object* result; |
| 2076 MaybeObject* maybe_result = AllocateRawMap(); | 2078 MaybeObject* maybe_result = AllocateRawMap(); |
| 2077 if (!maybe_result->To(&result)) return maybe_result; | 2079 if (!maybe_result->To(&result)) return maybe_result; |
| 2078 | 2080 |
| 2079 Map* map = reinterpret_cast<Map*>(result); | 2081 Map* map = reinterpret_cast<Map*>(result); |
| 2080 map->set_map_no_write_barrier(meta_map()); | 2082 map->set_map_no_write_barrier(meta_map()); |
| 2081 map->set_instance_type(instance_type); | 2083 map->set_instance_type(instance_type); |
| 2082 map->set_visitor_id( | 2084 map->set_visitor_id( |
| 2083 StaticVisitorBase::GetVisitorId(instance_type, instance_size)); | 2085 StaticVisitorBase::GetVisitorId(instance_type, instance_size)); |
| 2084 map->set_prototype(null_value(), SKIP_WRITE_BARRIER); | 2086 map->set_prototype(null_value(), SKIP_WRITE_BARRIER); |
| 2085 map->set_constructor(null_value(), SKIP_WRITE_BARRIER); | 2087 map->set_constructor(null_value(), SKIP_WRITE_BARRIER); |
| 2086 map->set_instance_size(instance_size); | 2088 map->set_instance_size(instance_size); |
| 2087 map->set_inobject_properties(0); | 2089 map->set_inobject_properties(0); |
| 2088 map->set_pre_allocated_property_fields(0); | 2090 map->set_pre_allocated_property_fields(0); |
| 2089 map->set_code_cache(empty_fixed_array(), SKIP_WRITE_BARRIER); | 2091 map->set_code_cache(empty_fixed_array(), SKIP_WRITE_BARRIER); |
| 2090 map->init_back_pointer(undefined_value()); | 2092 map->init_back_pointer(undefined_value()); |
| 2091 map->set_unused_property_fields(0); | 2093 map->set_unused_property_fields(0); |
| 2092 map->set_bit_field(0); | 2094 map->set_bit_field(0); |
| 2093 map->set_bit_field2(1 << Map::kIsExtensible); | 2095 map->set_bit_field2(1 << Map::kIsExtensible); |
| 2094 int bit_field3 = Map::EnumLengthBits::encode(Map::kInvalidEnumCache); | 2096 int bit_field3 = Map::EnumLengthBits::encode(Map::kInvalidEnumCache) | |
| 2097 Map::OwnsDescriptors::encode(true); |
| 2095 map->set_bit_field3(bit_field3); | 2098 map->set_bit_field3(bit_field3); |
| 2096 map->set_elements_kind(elements_kind); | 2099 map->set_elements_kind(elements_kind); |
| 2097 | 2100 |
| 2098 // If the map object is aligned fill the padding area with Smi 0 objects. | 2101 // If the map object is aligned fill the padding area with Smi 0 objects. |
| 2099 if (Map::kPadStart < Map::kSize) { | 2102 if (Map::kPadStart < Map::kSize) { |
| 2100 memset(reinterpret_cast<byte*>(map) + Map::kPadStart - kHeapObjectTag, | 2103 memset(reinterpret_cast<byte*>(map) + Map::kPadStart - kHeapObjectTag, |
| 2101 0, | 2104 0, |
| 2102 Map::kSize - Map::kPadStart); | 2105 Map::kSize - Map::kPadStart); |
| 2103 } | 2106 } |
| 2104 return map; | 2107 return map; |
| (...skipping 5017 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7122 } | 7125 } |
| 7123 } | 7126 } |
| 7124 | 7127 |
| 7125 | 7128 |
| 7126 void KeyedLookupCache::Clear() { | 7129 void KeyedLookupCache::Clear() { |
| 7127 for (int index = 0; index < kLength; index++) keys_[index].map = NULL; | 7130 for (int index = 0; index < kLength; index++) keys_[index].map = NULL; |
| 7128 } | 7131 } |
| 7129 | 7132 |
| 7130 | 7133 |
| 7131 void DescriptorLookupCache::Clear() { | 7134 void DescriptorLookupCache::Clear() { |
| 7132 for (int index = 0; index < kLength; index++) keys_[index].array = NULL; | 7135 for (int index = 0; index < kLength; index++) keys_[index].source = NULL; |
| 7133 } | 7136 } |
| 7134 | 7137 |
| 7135 | 7138 |
| 7136 #ifdef DEBUG | 7139 #ifdef DEBUG |
| 7137 void Heap::GarbageCollectionGreedyCheck() { | 7140 void Heap::GarbageCollectionGreedyCheck() { |
| 7138 ASSERT(FLAG_gc_greedy); | 7141 ASSERT(FLAG_gc_greedy); |
| 7139 if (isolate_->bootstrapper()->IsActive()) return; | 7142 if (isolate_->bootstrapper()->IsActive()) return; |
| 7140 if (disallow_allocation_failure()) return; | 7143 if (disallow_allocation_failure()) return; |
| 7141 CollectGarbage(NEW_SPACE); | 7144 CollectGarbage(NEW_SPACE); |
| 7142 } | 7145 } |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7321 static_cast<int>(object_sizes_last_time_[index])); | 7324 static_cast<int>(object_sizes_last_time_[index])); |
| 7322 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(ADJUST_LAST_TIME_OBJECT_COUNT) | 7325 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(ADJUST_LAST_TIME_OBJECT_COUNT) |
| 7323 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 7326 #undef ADJUST_LAST_TIME_OBJECT_COUNT |
| 7324 | 7327 |
| 7325 memcpy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 7328 memcpy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); |
| 7326 memcpy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 7329 memcpy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); |
| 7327 ClearObjectStats(); | 7330 ClearObjectStats(); |
| 7328 } | 7331 } |
| 7329 | 7332 |
| 7330 } } // namespace v8::internal | 7333 } } // namespace v8::internal |
| OLD | NEW |