< prev index next >
src/hotspot/share/ci/ciInstanceKlass.cpp
InstanceKlass* ik = get_instanceKlass();
AccessFlags access_flags = ik->access_flags();
_flags = ciFlags(access_flags);
_has_finalizer = access_flags.has_finalizer();
! _has_subklass = ik->subklass() != NULL;
_init_state = ik->init_state();
_nonstatic_field_size = ik->nonstatic_field_size();
_has_nonstatic_fields = ik->has_nonstatic_fields();
_has_nonstatic_concrete_methods = ik->has_nonstatic_concrete_methods();
_is_unsafe_anonymous = ik->is_unsafe_anonymous();
InstanceKlass* ik = get_instanceKlass();
AccessFlags access_flags = ik->access_flags();
_flags = ciFlags(access_flags);
_has_finalizer = access_flags.has_finalizer();
! _has_subklass = flags().is_final() ? subklass_false : subklass_unknown;
_init_state = ik->init_state();
_nonstatic_field_size = ik->nonstatic_field_size();
_has_nonstatic_fields = ik->has_nonstatic_fields();
_has_nonstatic_concrete_methods = ik->has_nonstatic_concrete_methods();
_is_unsafe_anonymous = ik->is_unsafe_anonymous();
***************
// ------------------------------------------------------------------
// ciInstanceKlass::compute_shared_has_subklass
bool ciInstanceKlass::compute_shared_has_subklass() {
GUARDED_VM_ENTRY(
InstanceKlass* ik = get_instanceKlass();
! _has_subklass = ik->subklass() != NULL;
! return _has_subklass;
)
}
// ------------------------------------------------------------------
// ciInstanceKlass::loader
// ------------------------------------------------------------------
// ciInstanceKlass::compute_shared_has_subklass
bool ciInstanceKlass::compute_shared_has_subklass() {
GUARDED_VM_ENTRY(
InstanceKlass* ik = get_instanceKlass();
! _has_subklass = ik->subklass() != NULL ? subklass_true : subklass_false;
! return _has_subklass == subklass_true;
)
}
// ------------------------------------------------------------------
// ciInstanceKlass::loader
***************
bool ciInstanceKlass::is_leaf_type() {
assert(is_loaded(), "must be loaded");
if (is_shared()) {
return is_final(); // approximately correct
} else {
! return !_has_subklass && (nof_implementors() == 0);
}
}
// ------------------------------------------------------------------
// ciInstanceKlass::implementor
bool ciInstanceKlass::is_leaf_type() {
assert(is_loaded(), "must be loaded");
if (is_shared()) {
return is_final(); // approximately correct
} else {
! return !has_subklass() && (nof_implementors() == 0);
}
}
// ------------------------------------------------------------------
// ciInstanceKlass::implementor
< prev index next >