comparison src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp @ 10293:2958af1d8c5a

Merge
author jwilhelm
date Fri, 17 May 2013 06:01:10 +0200
parents f9be75d21404 05a17f270c7e
children 6702da6b6082
comparison
equal deleted inserted replaced
10272:513a5298c1dd 10293:2958af1d8c5a
705 705
706 size_t OtherRegionsTable::mem_size() const { 706 size_t OtherRegionsTable::mem_size() const {
707 // Cast away const in this case. 707 // Cast away const in this case.
708 MutexLockerEx x((Mutex*)&_m, Mutex::_no_safepoint_check_flag); 708 MutexLockerEx x((Mutex*)&_m, Mutex::_no_safepoint_check_flag);
709 size_t sum = 0; 709 size_t sum = 0;
710 PerRegionTable * cur = _first_all_fine_prts; 710 // all PRTs are of the same size so it is sufficient to query only one of them.
711 while (cur != NULL) { 711 if (_first_all_fine_prts != NULL) {
712 sum += cur->mem_size(); 712 assert(_last_all_fine_prts != NULL &&
713 cur = cur->next(); 713 _first_all_fine_prts->mem_size() == _last_all_fine_prts->mem_size(), "check that mem_size() is constant");
714 sum += _first_all_fine_prts->mem_size() * _n_fine_entries;
714 } 715 }
715 sum += (sizeof(PerRegionTable*) * _max_fine_entries); 716 sum += (sizeof(PerRegionTable*) * _max_fine_entries);
716 sum += (_coarse_map.size_in_words() * HeapWordSize); 717 sum += (_coarse_map.size_in_words() * HeapWordSize);
717 sum += (_sparse_table.mem_size()); 718 sum += (_sparse_table.mem_size());
718 sum += sizeof(*this) - sizeof(_sparse_table); // Avoid double counting above. 719 sum += sizeof(*this) - sizeof(_sparse_table); // Avoid double counting above.