< prev index next >

src/share/vm/gc_implementation/g1/g1HotCardCache.cpp

Print this page
rev 7854 : [mq]: 8058446-use-arrayallocator-for-hcc

@@ -35,11 +35,11 @@
 void G1HotCardCache::initialize(G1RegionToSpaceMapper* card_counts_storage) {
   if (default_use_cache()) {
     _use_cache = true;
 
     _hot_cache_size = (size_t)1 << G1ConcRSLogCacheSize;
-    _hot_cache = NEW_C_HEAP_ARRAY(jbyte*, _hot_cache_size, mtGC);
+    _hot_cache = _hot_cache_memory.allocate(_hot_cache_size);
 
     reset_hot_cache_internal();
 
     // For refining the cards in the hot cache in parallel
     _hot_cache_par_chunk_size = ClaimChunkSize;

@@ -50,11 +50,12 @@
 }
 
 G1HotCardCache::~G1HotCardCache() {
   if (default_use_cache()) {
     assert(_hot_cache != NULL, "Logic");
-    FREE_C_HEAP_ARRAY(jbyte*, _hot_cache);
+    _hot_cache_memory.free();
+    _hot_cache = NULL;
   }
 }
 
 jbyte* G1HotCardCache::insert(jbyte* card_ptr) {
   uint count = _card_counts.add_card_count(card_ptr);
< prev index next >