< prev index next >

src/hotspot/share/prims/nativeLookup.cpp

Print this page

        

@@ -291,14 +291,16 @@
 
   // Compute critical name
   char* critical_name = critical_jni_name(method);
 
   // Compute argument size
-  int args_size = 1                             // JNIEnv
-                + (method->is_static() ? 1 : 0) // class for static methods
-                + method->size_of_parameters(); // actual parameters
-
+  int args_size = method->size_of_parameters();
+  for (SignatureStream ss(signature); !ss.at_return_type(); ss.next()) {
+    if (ss.is_array()) {
+        args_size += T_INT_size; // array length parameter
+    }
+  }
 
   // 1) Try JNI short style
   entry = lookup_critical_style(method, critical_name, "",        args_size, true);
   if (entry != NULL) return entry;
 
< prev index next >