diff src/share/vm/ci/bcEscapeAnalyzer.cpp @ 3280:548597e74aa4

7030715: JSR 292 JRuby test/test_super_call_site_caching.rb asserts with +DoEscapeAnalysis Reviewed-by: twisti
author never
date Mon, 25 Apr 2011 16:25:58 -0700
parents a7367756024b
children cc81b9c09bbb
line wrap: on
line diff
--- a/src/share/vm/ci/bcEscapeAnalyzer.cpp	Thu Apr 21 00:25:40 2011 -0700
+++ b/src/share/vm/ci/bcEscapeAnalyzer.cpp	Mon Apr 25 16:25:58 2011 -0700
@@ -232,14 +232,7 @@
   }
 
   // compute size of arguments
-  int arg_size = target->arg_size();
-  if (code == Bytecodes::_invokedynamic) {
-    assert(!target->is_static(), "receiver explicit in method");
-    arg_size--;  // implicit, not really on stack
-  }
-  if (!target->is_loaded() && code == Bytecodes::_invokestatic) {
-    arg_size--;
-  }
+  int arg_size = target->invoke_arg_size(code);
   int arg_base = MAX2(state._stack_height - arg_size, 0);
 
   // direct recursive calls are skipped if they can be bound statically without introducing