OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <iomanip> | 5 #include <iomanip> |
6 #include <sstream> | 6 #include <sstream> |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
(...skipping 13328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13339 Handle<Derived> HashTable<Derived, Shape, Key>::New( | 13339 Handle<Derived> HashTable<Derived, Shape, Key>::New( |
13340 Isolate* isolate, | 13340 Isolate* isolate, |
13341 int at_least_space_for, | 13341 int at_least_space_for, |
13342 MinimumCapacity capacity_option, | 13342 MinimumCapacity capacity_option, |
13343 PretenureFlag pretenure) { | 13343 PretenureFlag pretenure) { |
13344 DCHECK(0 <= at_least_space_for); | 13344 DCHECK(0 <= at_least_space_for); |
13345 DCHECK(!capacity_option || base::bits::IsPowerOfTwo32(at_least_space_for)); | 13345 DCHECK(!capacity_option || base::bits::IsPowerOfTwo32(at_least_space_for)); |
13346 | 13346 |
13347 int capacity = (capacity_option == USE_CUSTOM_MINIMUM_CAPACITY) | 13347 int capacity = (capacity_option == USE_CUSTOM_MINIMUM_CAPACITY) |
13348 ? at_least_space_for | 13348 ? at_least_space_for |
13349 : ComputeCapacity(at_least_space_for); | 13349 : isolate->creating_default_snapshot() |
| 13350 ? ComputeCapacityForSerialization(at_least_space_for) |
| 13351 : ComputeCapacity(at_least_space_for); |
13350 if (capacity > HashTable::kMaxCapacity) { | 13352 if (capacity > HashTable::kMaxCapacity) { |
13351 v8::internal::Heap::FatalProcessOutOfMemory("invalid table size", true); | 13353 v8::internal::Heap::FatalProcessOutOfMemory("invalid table size", true); |
13352 } | 13354 } |
13353 | 13355 |
13354 Factory* factory = isolate->factory(); | 13356 Factory* factory = isolate->factory(); |
13355 int length = EntryToIndex(capacity); | 13357 int length = EntryToIndex(capacity); |
13356 Handle<FixedArray> array = factory->NewFixedArray(length, pretenure); | 13358 Handle<FixedArray> array = factory->NewFixedArray(length, pretenure); |
13357 array->set_map_no_write_barrier(*factory->hash_table_map()); | 13359 array->set_map_no_write_barrier(*factory->hash_table_map()); |
13358 Handle<Derived> table = Handle<Derived>::cast(array); | 13360 Handle<Derived> table = Handle<Derived>::cast(array); |
13359 | 13361 |
(...skipping 2410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15770 if (cell->value() != *new_value) { | 15772 if (cell->value() != *new_value) { |
15771 cell->set_value(*new_value); | 15773 cell->set_value(*new_value); |
15772 Isolate* isolate = cell->GetIsolate(); | 15774 Isolate* isolate = cell->GetIsolate(); |
15773 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 15775 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
15774 isolate, DependentCode::kPropertyCellChangedGroup); | 15776 isolate, DependentCode::kPropertyCellChangedGroup); |
15775 } | 15777 } |
15776 } | 15778 } |
15777 | 15779 |
15778 } // namespace internal | 15780 } // namespace internal |
15779 } // namespace v8 | 15781 } // namespace v8 |
OLD | NEW |