예제 #1
0
inline void HeapRegionSetBase::remove(HeapRegion* hr) {
  check_mt_safety();
  verify_region(hr);
  assert_heap_region_set(hr->next() == NULL, "should already be unlinked");
  assert_heap_region_set(hr->prev() == NULL, "should already be unlinked");

  hr->set_containing_set(NULL);
  assert_heap_region_set(_count.length() > 0, "pre-condition");
  _count.decrement(1u, hr->capacity());
}
예제 #2
0
inline void HeapRegionSetBase::add(HeapRegion* hr) {
  check_mt_safety();
  assert_heap_region_set(hr->containing_set() == NULL, "should not already have a containing set");
  assert_heap_region_set(hr->next() == NULL, "should not already be linked");
  assert_heap_region_set(hr->prev() == NULL, "should not already be linked");

  _count.increment(1u, hr->capacity());
  hr->set_containing_set(this);
  verify_region(hr);
}
예제 #3
0
inline void HeapRegionSetBase::remove(HeapRegion* hr) {
  check_mt_safety();
  verify_region(hr);
  assert_heap_region_set(hr->next() == NULL, "should already be unlinked");
  assert_heap_region_set(hr->prev() == NULL, "should already be unlinked");

  hr->set_containing_set(NULL);
  assert_heap_region_set(_length > 0, "pre-condition");
  _length--;
}
예제 #4
0
void HeapRegionSetBase::verify_end() {
  // See comment in verify() about MT safety and verification.
  check_mt_safety();
  assert_heap_region_set(_verify_in_progress, "verification should be in progress");

  _verify_in_progress = false;
}
예제 #5
0
void HeapRegionSetBase::verify_start() {
  // See comment in verify() about MT safety and verification.
  check_mt_safety();
  assert_heap_region_set(!_verify_in_progress, "verification should not be in progress");

  // Do the basic verification first before we do the checks over the regions.
  HeapRegionSetBase::verify();

  _verify_in_progress = true;
}