diff 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
line wrap: on
line diff
--- a/src/share/vm/opto/callGenerator.cpp	Thu Jul 03 12:59:11 2014 -0700
+++ b/src/share/vm/opto/callGenerator.cpp	Wed Jul 02 22:54:18 2014 +0200
@@ -837,8 +837,11 @@
           Node*             receiver_node = kit.argument(0);
           const TypeOopPtr* receiver_type = gvn.type(receiver_node)->isa_oopptr();
           // call_does_dispatch and vtable_index are out-parameters.  They might be changed.
-          target = C->optimize_virtual_call(caller, jvms->bci(), klass, target, receiver_type,
-                                            is_virtual,
+          // optimize_virtual_call() takes 2 different holder
+          // arguments for a corner case that doesn't apply here (see
+          // Parse::do_call())
+          target = C->optimize_virtual_call(caller, jvms->bci(), klass, klass,
+                                            target, receiver_type, is_virtual,
                                             call_does_dispatch, vtable_index);  // out-parameters
           // We lack profiling at this call but type speculation may
           // provide us with a type