inline void PSPromotionManager::claim_or_forward_depth(T* p) {
  assert(PSScavenge::should_scavenge(p, true), "revisiting object?");
  assert(Universe::heap()->kind() == CollectedHeap::ParallelScavengeHeap,
         "Sanity");
  assert(Universe::heap()->is_in(p), "pointer outside heap");

  claim_or_forward_internal_depth(p);
}
inline void PSPromotionManager::claim_or_forward_depth(heapRef* p) {
  assert(depth_first(), "invariant");
assert(PSScavenge::should_scavenge(ALWAYS_UNPOISON_OBJECTREF(*p),true),"revisiting object?");
  assert(Universe::heap()->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
  assert(Universe::heap()->is_in(p), "pointer outside heap");

  claim_or_forward_internal_depth(p);
}
inline void PSPromotionManager::claim_or_forward_depth(T* p) {
    assert(should_scavenge(p, true), "revisiting object?");
    assert(ParallelScavengeHeap::heap()->is_in(p), "pointer outside heap");

    claim_or_forward_internal_depth(p);
}