src/hotspot/share/gc/g1/g1ConcurrentMark.hpp
changeset 53645 2c6c0fabe6a2
parent 53348 331ba84b1e36
child 54262 1f9ad92e337b
equal deleted inserted replaced
53644:5d95a8dbb6e4 53645:2c6c0fabe6a2
    30 #include "gc/g1/g1HeapVerifier.hpp"
    30 #include "gc/g1/g1HeapVerifier.hpp"
    31 #include "gc/g1/g1RegionMarkStatsCache.hpp"
    31 #include "gc/g1/g1RegionMarkStatsCache.hpp"
    32 #include "gc/g1/heapRegionSet.hpp"
    32 #include "gc/g1/heapRegionSet.hpp"
    33 #include "gc/shared/taskqueue.hpp"
    33 #include "gc/shared/taskqueue.hpp"
    34 #include "memory/allocation.hpp"
    34 #include "memory/allocation.hpp"
       
    35 #include "utilities/compilerWarnings.hpp"
    35 
    36 
    36 class ConcurrentGCTimer;
    37 class ConcurrentGCTimer;
    37 class G1ConcurrentMarkThread;
    38 class G1ConcurrentMarkThread;
    38 class G1CollectedHeap;
    39 class G1CollectedHeap;
    39 class G1CMOopClosure;
    40 class G1CMOopClosure;
    41 class G1ConcurrentMark;
    42 class G1ConcurrentMark;
    42 class G1OldTracer;
    43 class G1OldTracer;
    43 class G1RegionToSpaceMapper;
    44 class G1RegionToSpaceMapper;
    44 class G1SurvivorRegions;
    45 class G1SurvivorRegions;
    45 
    46 
    46 #ifdef _MSC_VER
    47 PRAGMA_DIAG_PUSH
    47 #pragma warning(push)
       
    48 // warning C4522: multiple assignment operators specified
    48 // warning C4522: multiple assignment operators specified
    49 #pragma warning(disable:4522)
    49 PRAGMA_DISABLE_MSVC_WARNING(4522)
    50 #endif
       
    51 
    50 
    52 // This is a container class for either an oop or a continuation address for
    51 // This is a container class for either an oop or a continuation address for
    53 // mark stack entries. Both are pushed onto the mark stack.
    52 // mark stack entries. Both are pushed onto the mark stack.
    54 class G1TaskQueueEntry {
    53 class G1TaskQueueEntry {
    55 private:
    54 private:
    91   bool is_oop() const { return !is_array_slice(); }
    90   bool is_oop() const { return !is_array_slice(); }
    92   bool is_array_slice() const { return ((uintptr_t)_holder & ArraySliceBit) != 0; }
    91   bool is_array_slice() const { return ((uintptr_t)_holder & ArraySliceBit) != 0; }
    93   bool is_null() const { return _holder == NULL; }
    92   bool is_null() const { return _holder == NULL; }
    94 };
    93 };
    95 
    94 
    96 #ifdef _MSC_VER
    95 PRAGMA_DIAG_POP
    97 #pragma warning(pop)
       
    98 #endif
       
    99 
    96 
   100 typedef GenericTaskQueue<G1TaskQueueEntry, mtGC> G1CMTaskQueue;
    97 typedef GenericTaskQueue<G1TaskQueueEntry, mtGC> G1CMTaskQueue;
   101 typedef GenericTaskQueueSet<G1CMTaskQueue, mtGC> G1CMTaskQueueSet;
    98 typedef GenericTaskQueueSet<G1CMTaskQueue, mtGC> G1CMTaskQueueSet;
   102 
    99 
   103 // Closure used by CM during concurrent reference discovery
   100 // Closure used by CM during concurrent reference discovery