< prev index next > src/hotspot/share/oops/instanceKlass.cpp
Print this page
assert(class_name != nullptr, "invariant");
ClassLoaderData* loader_data = parser.loader_data();
assert(loader_data != nullptr, "invariant");
InstanceKlass* ik;
! const bool use_class_space = parser.klass_needs_narrow_id();
// Allocation
if (parser.is_instance_ref_klass()) {
// java.lang.ref.Reference
ik = new (loader_data, size, use_class_space, THREAD) InstanceRefKlass(parser);
assert(class_name != nullptr, "invariant");
ClassLoaderData* loader_data = parser.loader_data();
assert(loader_data != nullptr, "invariant");
InstanceKlass* ik;
! const bool use_class_space = UseClassMetaspaceForAllClasses || parser.klass_needs_narrow_id();
// Allocation
if (parser.is_instance_ref_klass()) {
// java.lang.ref.Reference
ik = new (loader_data, size, use_class_space, THREAD) InstanceRefKlass(parser);
// Get rid of the osr methods for the same bci that have lower levels.
for (int l = CompLevel_limited_profile; l < n->comp_level(); l++) {
nmethod *inv = lookup_osr_nmethod(n->method(), n->osr_entry_bci(), l, true);
if (inv != nullptr && inv->is_in_use()) {
! inv->make_not_entrant("OSR invalidation of lower levels");
}
}
}
// Remove osr nmethod from the list. Return true if found and removed.
// Get rid of the osr methods for the same bci that have lower levels.
for (int l = CompLevel_limited_profile; l < n->comp_level(); l++) {
nmethod *inv = lookup_osr_nmethod(n->method(), n->osr_entry_bci(), l, true);
if (inv != nullptr && inv->is_in_use()) {
! inv->make_not_entrant(nmethod::InvalidationReason::OSR_INVALIDATION_OF_LOWER_LEVEL);
}
}
}
// Remove osr nmethod from the list. Return true if found and removed.
< prev index next >