< prev index next >
src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegionSet.cpp
Print this page
rev 10515 : [backport] Resettable iterators to avoid dealing with copying/assignment compilation differences
rev 10542 : [backport] Constify ShHeapRegionSet and ShCollectionSet
*** 31,53 ****
#include "utilities/copy.hpp"
ShenandoahHeapRegionSetIterator::ShenandoahHeapRegionSetIterator(const ShenandoahHeapRegionSet* const set) :
_set(set), _current_index(0), _heap(ShenandoahHeap::heap()) {}
! ShenandoahHeapRegionSetIterator& ShenandoahHeapRegionSetIterator::operator=(const ShenandoahHeapRegionSetIterator& o) {
! _current_index = o._current_index;
! assert(_set == o._set, "must be same");
! assert(_heap == o._heap, "must be same");
! return *this;
}
ShenandoahHeapRegionSet::ShenandoahHeapRegionSet() :
_heap(ShenandoahHeap::heap()),
_map_size(_heap->num_regions()),
_set_map(NEW_C_HEAP_ARRAY(jbyte, _map_size, mtGC)),
// Bias set map's base address for fast test if an oop is in set
! _biased_set_map(_set_map - ((uintx)_heap->base() >> ShenandoahHeapRegion::region_size_bytes_shift())),
_region_count(0)
{
// Use 1-byte data type
STATIC_ASSERT(sizeof(jbyte) == 1);
--- 31,52 ----
#include "utilities/copy.hpp"
ShenandoahHeapRegionSetIterator::ShenandoahHeapRegionSetIterator(const ShenandoahHeapRegionSet* const set) :
_set(set), _current_index(0), _heap(ShenandoahHeap::heap()) {}
! void ShenandoahHeapRegionSetIterator::reset(const ShenandoahHeapRegionSet* const set) {
! _set = set;
! _current_index = 0;
}
ShenandoahHeapRegionSet::ShenandoahHeapRegionSet() :
_heap(ShenandoahHeap::heap()),
_map_size(_heap->num_regions()),
+ _region_size_bytes_shift(ShenandoahHeapRegion::region_size_bytes_shift()),
_set_map(NEW_C_HEAP_ARRAY(jbyte, _map_size, mtGC)),
// Bias set map's base address for fast test if an oop is in set
! _biased_set_map(_set_map - ((uintx)_heap->base() >> _region_size_bytes_shift)),
_region_count(0)
{
// Use 1-byte data type
STATIC_ASSERT(sizeof(jbyte) == 1);
< prev index next >