]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
natMethod.cc (_Jv_CallAnyMethodA): Accept null `args' if method takes no parameters.
authorTom Tromey <tromey@cygnus.com>
Wed, 6 Sep 2000 21:20:45 +0000 (21:20 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Wed, 6 Sep 2000 21:20:45 +0000 (21:20 +0000)
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Accept null
`args' if method takes no parameters.

From-SVN: r36209

libjava/ChangeLog
libjava/java/lang/reflect/natMethod.cc

index 1c0cbcdc055e1cdb4ae850b758258eeab0773f0a..7af3054ef3dcd2fc7e277d457e001641a4c466cc 100644 (file)
@@ -1,5 +1,8 @@
 2000-09-06  Tom Tromey  <tromey@cygnus.com>
 
+       * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Accept null
+       `args' if method takes no parameters.
+
        Fix for PR java.lang/339:
        * java/lang/natPosixProcess.cc (fail): New function.
        (cleanup): New function.
index ef6ab53056db35dffa5501b94abe89b4ad45a5d8..897285261da1409d68c61ae0306e0a0df5d8ec7f 100644 (file)
@@ -447,13 +447,17 @@ _Jv_CallAnyMethodA (jobject obj,
 {
   // FIXME: access checks.
 
-  if (parameter_types->length != args->length)
+  if (parameter_types->length == 0 && args == NULL)
+    {
+      // The JDK accepts this, so we do too.
+    }
+  else if (parameter_types->length != args->length)
     JvThrow (new java::lang::IllegalArgumentException);
 
   int param_count = parameter_types->length;
 
   jclass *paramelts = elements (parameter_types);
-  jobject *argelts = elements (args);
+  jobject *argelts = args == NULL ? NULL : elements (args);
   jvalue argvals[param_count];
 
 #define COPY(Where, What, Type) \