src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
Print this page
rev 7653 : 8068883: Remove disabling of warning "C4355: 'this' : used in base member initializer list"
*** 55,68 ****
#include "utilities/globalDefinitions.hpp"
#include "utilities/workgroup.hpp"
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
- #ifdef _MSC_VER
- #pragma warning( push )
- #pragma warning( disable:4355 ) // 'this' : used in base member initializer list
- #endif
ParScanThreadState::ParScanThreadState(Space* to_space_,
ParNewGeneration* gen_,
Generation* old_gen_,
int thread_num_,
ObjToScanQueueSet* work_queue_set_,
--- 55,64 ----
*** 72,91 ****
_to_space(to_space_), _old_gen(old_gen_), _young_gen(gen_), _thread_num(thread_num_),
_work_queue(work_queue_set_->queue(thread_num_)), _to_space_full(false),
_overflow_stack(overflow_stacks_ ? overflow_stacks_ + thread_num_ : NULL),
_ageTable(false), // false ==> not the global age table, no perf data.
_to_space_alloc_buffer(desired_plab_sz_),
! _to_space_closure(gen_, this), _old_gen_closure(gen_, this),
! _to_space_root_closure(gen_, this), _old_gen_root_closure(gen_, this),
! _older_gen_closure(gen_, this),
! _evacuate_followers(this, &_to_space_closure, &_old_gen_closure,
! &_to_space_root_closure, gen_, &_old_gen_root_closure,
! work_queue_set_, &term_),
! _is_alive_closure(gen_), _scan_weak_ref_closure(gen_, this),
_keep_alive_closure(&_scan_weak_ref_closure),
_strong_roots_time(0.0), _term_time(0.0)
{
#if TASKQUEUE_STATS
_term_attempts = 0;
_overflow_refills = 0;
_overflow_refill_objs = 0;
#endif // TASKQUEUE_STATS
--- 68,98 ----
_to_space(to_space_), _old_gen(old_gen_), _young_gen(gen_), _thread_num(thread_num_),
_work_queue(work_queue_set_->queue(thread_num_)), _to_space_full(false),
_overflow_stack(overflow_stacks_ ? overflow_stacks_ + thread_num_ : NULL),
_ageTable(false), // false ==> not the global age table, no perf data.
_to_space_alloc_buffer(desired_plab_sz_),
! _is_alive_closure(gen_),
_keep_alive_closure(&_scan_weak_ref_closure),
_strong_roots_time(0.0), _term_time(0.0)
{
+ _to_space_closure = ParScanWithoutBarrierClosure(gen_, this);
+ _old_gen_closure = ParScanWithBarrierClosure(gen_, this);
+ _to_space_root_closure = ParRootScanWithoutBarrierClosure(gen_, this);
+ _old_gen_root_closure = ParRootScanWithBarrierTwoGensClosure(gen_, this);
+ _older_gen_closure = ParRootScanWithBarrierTwoGensClosure(gen_, this);
+ _scan_weak_ref_closure = ParScanWeakRefClosure(gen_, this);
+
+ _evacuate_followers = ParEvacuateFollowersClosure(this,
+ &_to_space_closure,
+ &_old_gen_closure,
+ &_to_space_root_closure,
+ gen_,
+ &_old_gen_root_closure,
+ work_queue_set_,
+ &term_);
+
+
#if TASKQUEUE_STATS
_term_attempts = 0;
_overflow_refills = 0;
_overflow_refill_objs = 0;
#endif // TASKQUEUE_STATS
*** 95,107 ****
_hash_seed = 17; // Might want to take time-based random value.
_start = os::elapsedTime();
_old_gen_closure.set_generation(old_gen_);
_old_gen_root_closure.set_generation(old_gen_);
}
- #ifdef _MSC_VER
- #pragma warning( pop )
- #endif
void ParScanThreadState::record_survivor_plab(HeapWord* plab_start,
size_t plab_word_size) {
ChunkArray* sca = survivor_chunk_array();
if (sca != NULL) {
--- 102,111 ----
*** 514,527 ****
{}
void ParScanWeakRefClosure::do_oop(oop* p) { ParScanWeakRefClosure::do_oop_work(p); }
void ParScanWeakRefClosure::do_oop(narrowOop* p) { ParScanWeakRefClosure::do_oop_work(p); }
- #ifdef WIN32
- #pragma warning(disable: 4786) /* identifier was truncated to '255' characters in the browser information */
- #endif
-
ParEvacuateFollowersClosure::ParEvacuateFollowersClosure(
ParScanThreadState* par_scan_state_,
ParScanWithoutBarrierClosure* to_space_closure_,
ParScanWithBarrierClosure* old_gen_closure_,
ParRootScanWithoutBarrierClosure* to_space_root_closure_,
--- 518,527 ----
*** 632,652 ****
// "evacuate followers".
par_scan_state.evacuate_followers_closure().do_void();
}
- #ifdef _MSC_VER
- #pragma warning( push )
- #pragma warning( disable:4355 ) // 'this' : used in base member initializer list
- #endif
ParNewGeneration::
ParNewGeneration(ReservedSpace rs, size_t initial_byte_size, int level)
: DefNewGeneration(rs, initial_byte_size, level, "PCopy"),
_overflow_list(NULL),
- _is_alive_closure(this),
_plab_stats(YoungPLABSize, PLABWeight)
{
NOT_PRODUCT(_overflow_counter = ParGCWorkQueueOverflowInterval;)
NOT_PRODUCT(_num_par_pushes = 0;)
_task_queues = new ObjToScanQueueSet(ParallelGCThreads);
guarantee(_task_queues != NULL, "task_queues allocation failure.");
--- 632,648 ----
// "evacuate followers".
par_scan_state.evacuate_followers_closure().do_void();
}
ParNewGeneration::
ParNewGeneration(ReservedSpace rs, size_t initial_byte_size, int level)
: DefNewGeneration(rs, initial_byte_size, level, "PCopy"),
_overflow_list(NULL),
_plab_stats(YoungPLABSize, PLABWeight)
{
+ _is_alive_closure = DefNewGeneration::IsAliveClosure(this);
NOT_PRODUCT(_overflow_counter = ParGCWorkQueueOverflowInterval;)
NOT_PRODUCT(_num_par_pushes = 0;)
_task_queues = new ObjToScanQueueSet(ParallelGCThreads);
guarantee(_task_queues != NULL, "task_queues allocation failure.");
*** 680,692 ****
PerfDataManager::counter_name(_gen_counters->name_space(), "threads");
PerfDataManager::create_constant(SUN_GC, cname, PerfData::U_None,
ParallelGCThreads, CHECK);
}
}
- #ifdef _MSC_VER
- #pragma warning( pop )
- #endif
// ParNewGeneration::
ParKeepAliveClosure::ParKeepAliveClosure(ParScanWeakRefClosure* cl) :
DefNewGeneration::KeepAliveClosure(cl), _par_cl(cl) {}
--- 676,685 ----