bool ClassLoaderData::is_alive(BoolObjectClosure* is_alive_closure) const { bool alive = keep_alive() // null class loader and incomplete anonymous klasses. || is_alive_closure->do_object_b(keep_alive_object()); #ifdef ASSERT if (alive) { AllAliveClosure all_alive_closure(is_alive_closure); KlassToOopClosure klass_closure(&all_alive_closure); const_cast<ClassLoaderData*>(this)->oops_do(&all_alive_closure, &klass_closure, false); assert(!all_alive_closure.found_dead(), err_msg("Found dead oop in alive cld: " PTR_FORMAT, p2i(this))); } #endif return alive; }
bool ClassLoaderData::is_alive(BoolObjectClosure* is_alive_closure) const { bool alive = keep_alive() // null class loader and incomplete anonymous klasses. || is_alive_closure->do_object_b(keep_alive_object()); return alive; }