]> granicus.if.org Git - php/commitdiff
Fix garbage in warning strings, and IllegalArgumentException on
authorSam Ruby <rubys@php.net>
Fri, 30 Jun 2000 04:48:46 +0000 (04:48 +0000)
committerSam Ruby <rubys@php.net>
Fri, 30 Jun 2000 04:48:46 +0000 (04:48 +0000)
assignments which require data type conversions.

ext/java/java.c
ext/java/reflect.java
ext/rpc/java/java.c
ext/rpc/java/reflect.java

index 5bc92eca30c58dbaa8d0ceec9e4163e4f5d90b14..10ee1391ce0109cf816ff58a7f4558469a03e98b 100644 (file)
@@ -578,7 +578,7 @@ JNIEXPORT jlong JNICALL Java_net_php_reflect_nextElement
 }
 
 JNIEXPORT void JNICALL Java_net_php_reflect_setException
-  (JNIEnv *jenv, jclass self, jlong result, jstring value)
+  (JNIEnv *jenv, jclass self, jlong result, jbyteArray value)
 {
   pval *presult = (pval*)(long)result;
   Java_net_php_reflect_setResultFromString(jenv, self, result, value);
index 348d89b3c96ae692dd322a0f12a7543d0ea3dfcc..0d6347cf8414b74e4ef235a9cf119a1c297698b8 100644 (file)
@@ -45,7 +45,7 @@ public class reflect {
   private static native void setResultFromObject(long result, Object value);
   private static native void setResultFromArray(long result);
   private static native long nextElement(long array);
-  private static native void setException(long result, String value);
+  private static native void setException(long result, byte value[]);
   public  static native void setEnv();
 
   //
@@ -94,7 +94,7 @@ public class reflect {
       if (t!=null) e=t;
     }
 
-    setException(result, e.toString());
+    setException(result, e.toString().getBytes());
   }
 
   //
@@ -295,6 +295,7 @@ public class reflect {
             Method method;
             if (args!=null && args.length>0) {
               method=props[i].getWriteMethod();
+              args = coerce(method.getParameterTypes(), args);
             } else {
               method=props[i].getReadMethod();
             }
@@ -307,6 +308,7 @@ public class reflect {
         for (int i=0; i<jfields.length; i++) {
           if (jfields[i].getName().equalsIgnoreCase(prop)) {
             if (args!=null && args.length>0) {
+              args = coerce(new Class[] {jfields[i].getType()}, args);
               jfields[i].set(object, args[0]);
             } else {
               setResult(result, jfields[i].get(object));
index 5bc92eca30c58dbaa8d0ceec9e4163e4f5d90b14..10ee1391ce0109cf816ff58a7f4558469a03e98b 100644 (file)
@@ -578,7 +578,7 @@ JNIEXPORT jlong JNICALL Java_net_php_reflect_nextElement
 }
 
 JNIEXPORT void JNICALL Java_net_php_reflect_setException
-  (JNIEnv *jenv, jclass self, jlong result, jstring value)
+  (JNIEnv *jenv, jclass self, jlong result, jbyteArray value)
 {
   pval *presult = (pval*)(long)result;
   Java_net_php_reflect_setResultFromString(jenv, self, result, value);
index 348d89b3c96ae692dd322a0f12a7543d0ea3dfcc..0d6347cf8414b74e4ef235a9cf119a1c297698b8 100644 (file)
@@ -45,7 +45,7 @@ public class reflect {
   private static native void setResultFromObject(long result, Object value);
   private static native void setResultFromArray(long result);
   private static native long nextElement(long array);
-  private static native void setException(long result, String value);
+  private static native void setException(long result, byte value[]);
   public  static native void setEnv();
 
   //
@@ -94,7 +94,7 @@ public class reflect {
       if (t!=null) e=t;
     }
 
-    setException(result, e.toString());
+    setException(result, e.toString().getBytes());
   }
 
   //
@@ -295,6 +295,7 @@ public class reflect {
             Method method;
             if (args!=null && args.length>0) {
               method=props[i].getWriteMethod();
+              args = coerce(method.getParameterTypes(), args);
             } else {
               method=props[i].getReadMethod();
             }
@@ -307,6 +308,7 @@ public class reflect {
         for (int i=0; i<jfields.length; i++) {
           if (jfields[i].getName().equalsIgnoreCase(prop)) {
             if (args!=null && args.length>0) {
+              args = coerce(new Class[] {jfields[i].getType()}, args);
               jfields[i].set(object, args[0]);
             } else {
               setResult(result, jfields[i].get(object));