cvs: /php4/ext/java java.c

From: Date: Wed, 15 Mar 2000 10:36:07 +0000
Subject: cvs: /php4/ext/java java.c
Groups: php.version4 
Request: Send a blank email to php-version4+get-12147@lists.php.net to get a copy of this message
rubys Wed Mar 15 02:36:07 2000 EDT Modified files: /php4/ext/java java.c Log: Cleanup, better error recovery, easier configuration Index: php4/ext/java/java.c diff -u php4/ext/java/java.c:1.15 php4/ext/java/java.c:1.16 --- php4/ext/java/java.c:1.15 Sun Mar 12 17:11:35 2000 +++ php4/ext/java/java.c Wed Mar 15 02:35:37 2000 @@ -85,10 +85,12 @@ PHP_INI_BEGIN() PHP_INI_ENTRY1("java.class.path", NULL, PHP_INI_ALL, OnIniUpdate, &classpath) +#ifndef JNI_11 PHP_INI_ENTRY1("java.home", NULL, PHP_INI_ALL, OnIniUpdate, &javahome) PHP_INI_ENTRY1("java.library.path", NULL, PHP_INI_ALL, OnIniUpdate, &libpath) +#endif PHP_INI_END() /***************************************************************************/ @@ -143,12 +145,6 @@ iniUpdated=0; - if (!classpath) classpath = getenv("CLASSPATH"); - -#ifndef PHP_WIN32 - if (!libpath) libpath = getenv("LD_LIBRARY_PATH"); -#endif - #ifdef JNI_12 vm_args.version = JNI_VERSION_1_2; @@ -185,14 +181,19 @@ local_php_reflect = (*jenv)->FindClass(jenv, "net/php/reflect"); error = (*jenv)->ExceptionOccurred(jenv); if (error) { - jclass errClass = (*jenv)->GetObjectClass(jenv, error); - jmethodID toString = (*jenv)->GetMethodID(jenv, errClass, "toString", + jclass errClass; + jmethodID toString; + jobject errString; + const char *errAsUTF; + jboolean isCopy; + (*jenv)->ExceptionClear(jenv); + errClass = (*jenv)->GetObjectClass(jenv, error); + toString = (*jenv)->GetMethodID(jenv, errClass, "toString", "()Ljava/lang/String;"); - jobject errString = (*jenv)->CallObjectMethod(jenv, error, toString); - const char *errAsUTF = (*jenv)->GetStringUTFChars(jenv, errString, 0); + errString = (*jenv)->CallObjectMethod(jenv, error, toString); + errAsUTF = (*jenv)->GetStringUTFChars(jenv, errString, &isCopy); php_error(E_ERROR, "%s", errAsUTF); - (*jenv)->ReleaseStringUTFChars(jenv, error, errAsUTF); - (*jenv)->ExceptionClear(jenv); + if (isCopy) (*jenv)->ReleaseStringUTFChars(jenv, error, errAsUTF); jvm_destroy(); return -1; } @@ -407,6 +408,14 @@ le_jobject = register_list_destructors(_php_java_destructor,NULL); REGISTER_INI_ENTRIES(); + + if (!classpath) classpath = getenv("CLASSPATH"); + + if (!libpath) { + PLS_FETCH(); + libpath=PG(extension_dir); + } + return SUCCESS; } @@ -444,13 +453,14 @@ JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromString (JNIEnv *jenv, jclass self, jlong result, jstring value) { - const char *valueAsUTF = (*jenv)->GetStringUTFChars(jenv, value, 0); + jboolean isCopy; + const char *valueAsUTF = (*jenv)->GetStringUTFChars(jenv, value, &isCopy); pval *presult = (pval*)(long)result; presult->type=IS_STRING; presult->value.str.len=strlen(valueAsUTF); presult->value.str.val=emalloc(presult->value.str.len+1); strcpy(presult->value.str.val, valueAsUTF); - (*jenv)->ReleaseStringUTFChars(jenv, value, valueAsUTF); + if (isCopy) (*jenv)->ReleaseStringUTFChars(jenv, value, valueAsUTF); } JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromLong

« previous php.version4 (#12147) next »