equal
deleted
inserted
replaced
341 assert( dest_method->is_loaded(), "ciTypeFlow should not let us get here" ); |
341 assert( dest_method->is_loaded(), "ciTypeFlow should not let us get here" ); |
342 // Interface classes can be loaded & linked and never get around to |
342 // Interface classes can be loaded & linked and never get around to |
343 // being initialized. Uncommon-trap for not-initialized static or |
343 // being initialized. Uncommon-trap for not-initialized static or |
344 // v-calls. Let interface calls happen. |
344 // v-calls. Let interface calls happen. |
345 ciInstanceKlass* holder_klass = dest_method->holder(); |
345 ciInstanceKlass* holder_klass = dest_method->holder(); |
346 if (!holder_klass->is_initialized() && |
346 if (!holder_klass->is_being_initialized() && |
|
347 !holder_klass->is_initialized() && |
347 !holder_klass->is_interface()) { |
348 !holder_klass->is_interface()) { |
348 uncommon_trap(Deoptimization::Reason_uninitialized, |
349 uncommon_trap(Deoptimization::Reason_uninitialized, |
349 Deoptimization::Action_reinterpret, |
350 Deoptimization::Action_reinterpret, |
350 holder_klass); |
351 holder_klass); |
351 return true; |
352 return true; |