src/solaris/native/sun/awt/awt_LoadLibrary.c

Print this page

        

*** 83,94 **** JNI_OnLoad_type *JNI_OnLoad_ptr; struct utsname name; JNIEnv *env = (JNIEnv *)JNU_GetEnv(vm, JNI_VERSION_1_2); void *v; char *envvar; ! jstring toolkit = NULL, grenv = NULL, fmanager = NULL; ! jstring tkProp = NULL, geProp = NULL, fmProp = NULL; if (awtHandle != NULL) { /* Avoid several loading attempts */ return JNI_VERSION_1_2; } --- 83,94 ---- JNI_OnLoad_type *JNI_OnLoad_ptr; struct utsname name; JNIEnv *env = (JNIEnv *)JNU_GetEnv(vm, JNI_VERSION_1_2); void *v; char *envvar; ! jstring fmanager = NULL; ! jstring fmProp = NULL; if (awtHandle != NULL) { /* Avoid several loading attempts */ return JNI_VERSION_1_2; }
*** 100,145 **** realpath((char *)dlinfo.dli_fname, buf); len = strlen(buf); p = strrchr(buf, '/'); /* ! * The code below is responsible for: ! * 1. Loading appropriate awt library, i.e. xawt/libmawt or headless/libwawt ! * 2. Setting "awt.toolkit" system property to use the appropriate Java toolkit class, ! * (if user has specified the toolkit in env varialble) */ - - tkProp = (*env)->NewStringUTF(env, "awt.toolkit"); - geProp = (*env)->NewStringUTF(env, "java.awt.graphicsenv"); fmProp = (*env)->NewStringUTF(env, "sun.font.fontmanager"); /* Check if toolkit is specified in env variable */ #ifdef MACOSX envvar = getenv("AWT_TOOLKIT"); if (envvar && strstr(envvar, "XToolkit")) { #endif - toolkit = (*env)->NewStringUTF(env, "sun.awt.X11.XToolkit"); - grenv = (*env)->NewStringUTF(env, "sun.awt.X11GraphicsEnvironment"); fmanager = (*env)->NewStringUTF(env, "sun.awt.X11FontManager"); tk = "/xawt/libmawt"; #ifdef MACOSX } else { - toolkit = (*env)->NewStringUTF(env, "sun.lwawt.macosx.LWCToolkit"); - grenv = (*env)->NewStringUTF(env, "sun.awt.CGraphicsEnvironment"); fmanager = (*env)->NewStringUTF(env, "sun.font.CFontManager"); tk = "/lwawt/liblwawt"; } #endif - if (toolkit && tkProp) { - JNU_CallStaticMethodByName(env, NULL, "java/lang/System", "setProperty", - "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", - tkProp, toolkit); - } - if (grenv && geProp) { - JNU_CallStaticMethodByName(env, NULL, "java/lang/System", "setProperty", - "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", - geProp, grenv); - } if (fmanager && fmProp) { JNU_CallStaticMethodByName(env, NULL, "java/lang/System", "setProperty", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", fmProp, fmanager); } --- 100,126 ---- realpath((char *)dlinfo.dli_fname, buf); len = strlen(buf); p = strrchr(buf, '/'); /* ! * 1. Set the "sun.font.fontmanager" system property, ! * 2. Choose the library image name. */ fmProp = (*env)->NewStringUTF(env, "sun.font.fontmanager"); /* Check if toolkit is specified in env variable */ #ifdef MACOSX envvar = getenv("AWT_TOOLKIT"); if (envvar && strstr(envvar, "XToolkit")) { #endif fmanager = (*env)->NewStringUTF(env, "sun.awt.X11FontManager"); tk = "/xawt/libmawt"; #ifdef MACOSX } else { fmanager = (*env)->NewStringUTF(env, "sun.font.CFontManager"); tk = "/lwawt/liblwawt"; } #endif if (fmanager && fmProp) { JNU_CallStaticMethodByName(env, NULL, "java/lang/System", "setProperty", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", fmProp, fmanager); }
*** 153,175 **** strcpy(p, tk); #ifndef MACOSX } #endif - if (toolkit) { - (*env)->DeleteLocalRef(env, toolkit); - } - if (tkProp) { - (*env)->DeleteLocalRef(env, tkProp); - } - if (grenv) { - (*env)->DeleteLocalRef(env, grenv); - } - if (geProp) { - (*env)->DeleteLocalRef(env, geProp); - } - #ifdef MACOSX strcat(p, ".dylib"); #else strcat(p, ".so"); #endif --- 134,143 ----