From: jochen@chromium.org Date: Mon, 20 Jan 2014 11:57:56 +0000 (+0000) Subject: Explicitly initialize MarkCompactCollector and ExternalStringTable X-Git-Tag: upstream/4.7.83~11096 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e06d47307d44858a76c8dcc3abfbd8b16aa4f17b;p=platform%2Fupstream%2Fv8.git Explicitly initialize MarkCompactCollector and ExternalStringTable BUG=none R=dcarney@chromium.org LOG=n Review URL: https://codereview.chromium.org/143063003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/heap.cc b/src/heap.cc index 5c6eb18..8b033d6 100644 --- a/src/heap.cc +++ b/src/heap.cc @@ -134,6 +134,7 @@ Heap::Heap() last_gc_end_timestamp_(0.0), marking_time_(0.0), sweeping_time_(0.0), + mark_compact_collector_(this), store_buffer_(this), marking_(this), incremental_marking_(this), @@ -152,6 +153,7 @@ Heap::Heap() allocation_sites_scratchpad_length(0), promotion_queue_(this), configured_(false), + external_string_table_(this), chunks_queued_for_free_(NULL), relocation_mutex_(NULL) { // Allow build-time customization of the max semispace size. Building @@ -177,8 +179,6 @@ Heap::Heap() native_contexts_list_ = NULL; array_buffers_list_ = Smi::FromInt(0); allocation_sites_list_ = Smi::FromInt(0); - mark_compact_collector_.heap_ = this; - external_string_table_.heap_ = this; // Put a dummy entry in the remembered pages so we can find the list the // minidump even if there are no real unmapped pages. RememberUnmappedPage(NULL, false); diff --git a/src/heap.h b/src/heap.h index 49c536b..8c0bc0d 100644 --- a/src/heap.h +++ b/src/heap.h @@ -462,7 +462,7 @@ class ExternalStringTable { void TearDown(); private: - ExternalStringTable() { } + explicit ExternalStringTable(Heap* heap) : heap_(heap) { } friend class Heap; diff --git a/src/mark-compact.cc b/src/mark-compact.cc index c7e98b7..7a76d1b 100644 --- a/src/mark-compact.cc +++ b/src/mark-compact.cc @@ -56,7 +56,7 @@ const char* Marking::kImpossibleBitPattern = "01"; // ------------------------------------------------------------------------- // MarkCompactCollector -MarkCompactCollector::MarkCompactCollector() : // NOLINT +MarkCompactCollector::MarkCompactCollector(Heap* heap) : // NOLINT #ifdef DEBUG state_(IDLE), #endif @@ -70,7 +70,7 @@ MarkCompactCollector::MarkCompactCollector() : // NOLINT sequential_sweeping_(false), tracer_(NULL), migration_slots_buffer_(NULL), - heap_(NULL), + heap_(heap), code_flusher_(NULL), encountered_weak_collections_(NULL), have_code_to_deoptimize_(false) { } diff --git a/src/mark-compact.h b/src/mark-compact.h index 2a1d97d..01ecbf8 100644 --- a/src/mark-compact.h +++ b/src/mark-compact.h @@ -744,7 +744,7 @@ class MarkCompactCollector { void MarkAllocationSite(AllocationSite* site); private: - MarkCompactCollector(); + explicit MarkCompactCollector(Heap* heap); ~MarkCompactCollector(); bool MarkInvalidatedCode();