comparison src/share/vm/opto/callGenerator.cpp @ 18003:dda2ae6f9557

8046542: [I.finalize() calls from methods compiled by C1 do not cause IllegalAccessError on Sparc Summary: call to Object.finalize() sometimes allowed by compilers on array type Reviewed-by: iveresov, vlivanov
author roland
date Wed, 02 Jul 2014 22:54:18 +0200
parents 968a17f18337
children 52b4284cb496 922c87c9aed4
comparison
equal deleted inserted replaced
18002:dad84b3f55a5 18003:dda2ae6f9557
835 if (is_virtual_or_interface) { 835 if (is_virtual_or_interface) {
836 ciInstanceKlass* klass = target->holder(); 836 ciInstanceKlass* klass = target->holder();
837 Node* receiver_node = kit.argument(0); 837 Node* receiver_node = kit.argument(0);
838 const TypeOopPtr* receiver_type = gvn.type(receiver_node)->isa_oopptr(); 838 const TypeOopPtr* receiver_type = gvn.type(receiver_node)->isa_oopptr();
839 // call_does_dispatch and vtable_index are out-parameters. They might be changed. 839 // call_does_dispatch and vtable_index are out-parameters. They might be changed.
840 target = C->optimize_virtual_call(caller, jvms->bci(), klass, target, receiver_type, 840 // optimize_virtual_call() takes 2 different holder
841 is_virtual, 841 // arguments for a corner case that doesn't apply here (see
842 // Parse::do_call())
843 target = C->optimize_virtual_call(caller, jvms->bci(), klass, klass,
844 target, receiver_type, is_virtual,
842 call_does_dispatch, vtable_index); // out-parameters 845 call_does_dispatch, vtable_index); // out-parameters
843 // We lack profiling at this call but type speculation may 846 // We lack profiling at this call but type speculation may
844 // provide us with a type 847 // provide us with a type
845 speculative_receiver_type = receiver_type->speculative_type(); 848 speculative_receiver_type = receiver_type->speculative_type();
846 } 849 }