OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 "src/heap/heap.h" | 5 #include "src/heap/heap.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/api.h" | 8 #include "src/api.h" |
9 #include "src/ast/context-slot-cache.h" | 9 #include "src/ast/context-slot-cache.h" |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 promotion_queue_(this), | 149 promotion_queue_(this), |
150 configured_(false), | 150 configured_(false), |
151 current_gc_flags_(Heap::kNoGCFlags), | 151 current_gc_flags_(Heap::kNoGCFlags), |
152 current_gc_callback_flags_(GCCallbackFlags::kNoGCCallbackFlags), | 152 current_gc_callback_flags_(GCCallbackFlags::kNoGCCallbackFlags), |
153 external_string_table_(this), | 153 external_string_table_(this), |
154 gc_callbacks_depth_(0), | 154 gc_callbacks_depth_(0), |
155 deserialization_complete_(false), | 155 deserialization_complete_(false), |
156 strong_roots_list_(NULL), | 156 strong_roots_list_(NULL), |
157 heap_iterator_depth_(0), | 157 heap_iterator_depth_(0), |
158 embedder_heap_tracer_(nullptr), | 158 embedder_heap_tracer_(nullptr), |
159 embedder_reference_reporter_(new TracePossibleWrapperReporter(this)), | |
160 force_oom_(false), | 159 force_oom_(false), |
161 delay_sweeper_tasks_for_testing_(false) { | 160 delay_sweeper_tasks_for_testing_(false) { |
162 // Allow build-time customization of the max semispace size. Building | 161 // Allow build-time customization of the max semispace size. Building |
163 // V8 with snapshots and a non-default max semispace size is much | 162 // V8 with snapshots and a non-default max semispace size is much |
164 // easier if you can define it as part of the build environment. | 163 // easier if you can define it as part of the build environment. |
165 #if defined(V8_MAX_SEMISPACE_SIZE) | 164 #if defined(V8_MAX_SEMISPACE_SIZE) |
166 max_semi_space_size_ = reserved_semispace_size_ = V8_MAX_SEMISPACE_SIZE; | 165 max_semi_space_size_ = reserved_semispace_size_ = V8_MAX_SEMISPACE_SIZE; |
167 #endif | 166 #endif |
168 | 167 |
169 // Ensure old_generation_size_ is a multiple of kPageSize. | 168 // Ensure old_generation_size_ is a multiple of kPageSize. |
(...skipping 5533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5703 next = list->next; | 5702 next = list->next; |
5704 delete list; | 5703 delete list; |
5705 } | 5704 } |
5706 strong_roots_list_ = NULL; | 5705 strong_roots_list_ = NULL; |
5707 | 5706 |
5708 delete store_buffer_; | 5707 delete store_buffer_; |
5709 store_buffer_ = nullptr; | 5708 store_buffer_ = nullptr; |
5710 | 5709 |
5711 delete memory_allocator_; | 5710 delete memory_allocator_; |
5712 memory_allocator_ = nullptr; | 5711 memory_allocator_ = nullptr; |
5713 | |
5714 delete embedder_reference_reporter_; | |
5715 embedder_reference_reporter_ = nullptr; | |
5716 } | 5712 } |
5717 | 5713 |
5718 | 5714 |
5719 void Heap::AddGCPrologueCallback(v8::Isolate::GCCallback callback, | 5715 void Heap::AddGCPrologueCallback(v8::Isolate::GCCallback callback, |
5720 GCType gc_type, bool pass_isolate) { | 5716 GCType gc_type, bool pass_isolate) { |
5721 DCHECK(callback != NULL); | 5717 DCHECK(callback != NULL); |
5722 GCCallbackPair pair(callback, gc_type, pass_isolate); | 5718 GCCallbackPair pair(callback, gc_type, pass_isolate); |
5723 DCHECK(!gc_prologue_callbacks_.Contains(pair)); | 5719 DCHECK(!gc_prologue_callbacks_.Contains(pair)); |
5724 return gc_prologue_callbacks_.Add(pair); | 5720 return gc_prologue_callbacks_.Add(pair); |
5725 } | 5721 } |
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6486 } | 6482 } |
6487 | 6483 |
6488 | 6484 |
6489 // static | 6485 // static |
6490 int Heap::GetStaticVisitorIdForMap(Map* map) { | 6486 int Heap::GetStaticVisitorIdForMap(Map* map) { |
6491 return StaticVisitorBase::GetVisitorId(map); | 6487 return StaticVisitorBase::GetVisitorId(map); |
6492 } | 6488 } |
6493 | 6489 |
6494 } // namespace internal | 6490 } // namespace internal |
6495 } // namespace v8 | 6491 } // namespace v8 |
OLD | NEW |