diff src/share/vm/code/nmethod.cpp @ 10390:28e5aed7f3a6

8009981: nashorn tests fail with -XX:+VerifyStack Summary: nmethod::preserve_callee_argument_oops() must take appendix into account. Reviewed-by: kvn, twisti
author roland
date Fri, 31 May 2013 14:40:26 +0200
parents 4674e409a9e6
children 836a62f43af9 ef57c43512d6
line wrap: on
line diff
--- a/src/share/vm/code/nmethod.cpp	Thu May 30 08:37:08 2013 -0700
+++ b/src/share/vm/code/nmethod.cpp	Fri May 31 14:40:26 2013 +0200
@@ -1976,11 +1976,10 @@
   if (!method()->is_native()) {
     SimpleScopeDesc ssd(this, fr.pc());
     Bytecode_invoke call(ssd.method(), ssd.bci());
-    // compiled invokedynamic call sites have an implicit receiver at
-    // resolution time, so make sure it gets GC'ed.
-    bool has_receiver = !call.is_invokestatic();
+    bool has_receiver = call.has_receiver();
+    bool has_appendix = call.has_appendix();
     Symbol* signature = call.signature();
-    fr.oops_compiled_arguments_do(signature, has_receiver, reg_map, f);
+    fr.oops_compiled_arguments_do(signature, has_receiver, has_appendix, reg_map, f);
   }
 #endif // !SHARK
 }