cvs: php4 /ext/java/

From: Date: Fri, 12 May 2000 09:51:15 +0000
Subject: cvs: php4 /ext/java/
Groups: php.version4 
Request: Send a blank email to php-version4+get-14897@lists.php.net to get a copy of this message
rubys Fri May 12 11:51:15 2000 EDT Modified files: /php4/ext/java java.c reflect.java Log: i18n, part I Index: php4/ext/java/java.c diff -u php4/ext/java/java.c:1.19 php4/ext/java/java.c:1.20 --- php4/ext/java/java.c:1.19 Tue May 2 02:30:26 2000 +++ php4/ext/java/java.c Fri May 12 11:51:15 2000 @@ -263,7 +263,9 @@ for (i=0; i<argc; i++) { switch (argv[i]->type) { case IS_STRING: - arg=(*jenv)->NewStringUTF(jenv,argv[i]->value.str.val); + arg=(*jenv)->NewByteArray(jenv,argv[i]->value.str.len); + (*jenv)->SetByteArrayRegion(jenv,(jbyteArray)arg,0, + argv[i]->value.str.len, argv[i]->value.str.val); break; case IS_OBJECT: @@ -498,16 +500,16 @@ /***************************************************************************/ JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromString - (JNIEnv *jenv, jclass self, jlong result, jstring value) + (JNIEnv *jenv, jclass self, jlong result, jbyteArray jvalue) { jboolean isCopy; - const char *valueAsUTF = (*jenv)->GetStringUTFChars(jenv, value, &isCopy); + jbyte *value = (*jenv)->GetByteArrayElements(jenv, jvalue, &isCopy); pval *presult = (pval*)(long)result; presult->type=IS_STRING; - presult->value.str.len=strlen(valueAsUTF); + presult->value.str.len=(*jenv)->GetArrayLength(jenv, jvalue); presult->value.str.val=emalloc(presult->value.str.len+1); - strcpy(presult->value.str.val, valueAsUTF); - if (isCopy) (*jenv)->ReleaseStringUTFChars(jenv, value, valueAsUTF); + strcpy(presult->value.str.val, value); + if (isCopy) (*jenv)->ReleaseByteArrayElements(jenv, jvalue, value, 0); } JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromLong Index: php4/ext/java/reflect.java diff -u php4/ext/java/reflect.java:1.7 php4/ext/java/reflect.java:1.8 --- php4/ext/java/reflect.java:1.7 Mon Feb 28 18:02:26 2000 +++ php4/ext/java/reflect.java Fri May 12 11:51:15 2000 @@ -38,7 +38,7 @@ // // Native methods // - private static native void setResultFromString(long result, String value); + private static native void setResultFromString(long result, byte value[]); private static native void setResultFromLong(long result, long value); private static native void setResultFromDouble(long result, double value); private static native void setResultFromBoolean(long result, boolean value); @@ -56,7 +56,7 @@ if (value instanceof java.lang.String) { - setResultFromString(result, (String)value); + setResultFromString(result, ((String)value).getBytes()); } else if (value instanceof java.lang.Number) { @@ -155,6 +155,9 @@ if (!c.isInstance(args[i])) break; weight++; } + } else if (parms[i].isInstance("")) { + if (!(args[i] instanceof byte[])) + weight+=9999; } else if (parms[i].isPrimitive()) { Class c=parms[i]; if (args[i] instanceof Number) { @@ -199,7 +202,9 @@ Object result[] = args; for (int i=0; i<args.length; i++) { if (parms[i].isInstance(args[i])) continue; - if (args[i] instanceof Number && parms[i].isPrimitive()) { + if (args[i] instanceof byte[] && parms[i].isInstance("")) { + result[i] = new String((byte[])args[i]); + } else if (args[i] instanceof Number && parms[i].isPrimitive()) { if (result==args) result=(Object[])result.clone(); Class c = parms[i]; Number n = (Number)args[i];

« previous php.version4 (#14897) next »