6958668: repeated uncommon trapping for new of klass which is being initialized

Reviewed-by: kvn, jrose
This commit is contained in:
Tom Rodriguez 2010-07-12 10:58:25 -07:00
parent 7533d0caf7
commit d3c3800a29
5 changed files with 69 additions and 35 deletions

View file

@ -343,7 +343,8 @@ bool Parse::can_not_compile_call_site(ciMethod *dest_method, ciInstanceKlass* kl
// being initialized. Uncommon-trap for not-initialized static or
// v-calls. Let interface calls happen.
ciInstanceKlass* holder_klass = dest_method->holder();
if (!holder_klass->is_initialized() &&
if (!holder_klass->is_being_initialized() &&
!holder_klass->is_initialized() &&
!holder_klass->is_interface()) {
uncommon_trap(Deoptimization::Reason_uninitialized,
Deoptimization::Action_reinterpret,