comparison src/share/vm/opto/callGenerator.cpp @ 20573:8ed0a8dbea70

8059556: C2: crash while inlining MethodHandle invocation w/ null receiver Reviewed-by: kvn, jrose
author vlivanov
date Wed, 01 Oct 2014 12:34:45 -0700
parents 411e30e5fbb8
children 7848fc12602b
comparison
equal deleted inserted replaced
20572:87f199a9c1b1 20573:8ed0a8dbea70
860 target = C->optimize_virtual_call(caller, jvms->bci(), klass, klass, 860 target = C->optimize_virtual_call(caller, jvms->bci(), klass, klass,
861 target, receiver_type, is_virtual, 861 target, receiver_type, is_virtual,
862 call_does_dispatch, vtable_index); // out-parameters 862 call_does_dispatch, vtable_index); // out-parameters
863 // We lack profiling at this call but type speculation may 863 // We lack profiling at this call but type speculation may
864 // provide us with a type 864 // provide us with a type
865 speculative_receiver_type = receiver_type->speculative_type(); 865 speculative_receiver_type = (receiver_type != NULL) ? receiver_type->speculative_type() : NULL;
866 } 866 }
867 867
868 CallGenerator* cg = C->call_generator(target, vtable_index, call_does_dispatch, jvms, true, PROB_ALWAYS, speculative_receiver_type, true, true); 868 CallGenerator* cg = C->call_generator(target, vtable_index, call_does_dispatch, jvms, true, PROB_ALWAYS, speculative_receiver_type, true, true);
869 assert(cg == NULL || !cg->is_late_inline() || cg->is_mh_late_inline(), "no late inline here"); 869 assert(cg == NULL || !cg->is_late_inline() || cg->is_mh_late_inline(), "no late inline here");
870 if (cg != NULL && cg->is_inline()) 870 if (cg != NULL && cg->is_inline())