Mercurial > hg > graal-compiler
comparison src/share/vm/opto/doCall.cpp @ 1645:3941674cc7fa
6958668: repeated uncommon trapping for new of klass which is being initialized
Reviewed-by: kvn, jrose
author | never |
---|---|
date | Mon, 12 Jul 2010 10:58:25 -0700 |
parents | c18cbe5936b8 |
children | 8aa5fd5d2046 |
comparison
equal
deleted
inserted
replaced
1644:2a47bd84841f | 1645:3941674cc7fa |
---|---|
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; |