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 ----