< prev index next >

src/java.desktop/unix/native/common/awt/fontpath.c

Print this page
rev 11193 : imported patch refactor-fm.patch

@@ -495,11 +495,11 @@
  * This is consistent with the requirements of the desktop environments
  * on these OSes.
  * This also frees us from X11 APIs as JRE is required to function in
  * a "headless" mode where there is no Xserver.
  */
-static char *getPlatformFontPathChars(JNIEnv *env, jboolean noType1) {
+static char *getPlatformFontPathChars(JNIEnv *env, jboolean noType1, jboolean isX11) {
 
     char **fcdirs = NULL, **x11dirs = NULL, **knowndirs = NULL, *path = NULL;
 
     /* As of 1.5 we try to use fontconfig on both Solaris and Linux.
      * If its not available NULL is returned.

@@ -517,10 +517,11 @@
      * is already initialised. That is always true, but if it were not so,
      * this code could throw an exception and the fontpath would fail to
      * be initialised.
      */
 #ifndef HEADLESS
+    if (isX11) { // The following only works in an x11 environment.
 #if defined(__linux__)
     /* There's no headless build on linux ... */
     if (!AWTIsHeadless()) { /* .. so need to call a function to check */
 #endif
       /* Using the X11 font path to locate font files is now a fallback

@@ -536,10 +537,11 @@
     }
     AWT_UNLOCK();
 #if defined(__linux__)
     }
 #endif
+    }
 #endif /* !HEADLESS */
     path = mergePaths(fcdirs, x11dirs, knowndirs, noType1);
     if (fcdirs != NULL) {
         char **p = fcdirs;
         while (*p != NULL)  free(*p++);

@@ -553,17 +555,17 @@
     }
 
     return path;
 }
 
-JNIEXPORT jstring JNICALL Java_sun_awt_X11FontManager_getFontPathNative
-(JNIEnv *env, jobject thiz, jboolean noType1) {
+JNIEXPORT jstring JNICALL Java_sun_awt_FcFontManager_getFontPathNative
+(JNIEnv *env, jobject thiz, jboolean noType1, jboolean isX11) {
     jstring ret;
     static char *ptr = NULL; /* retain result across calls */
 
     if (ptr == NULL) {
-        ptr = getPlatformFontPathChars(env, noType1);
+        ptr = getPlatformFontPathChars(env, noType1, isX11);
     }
     ret = (*env)->NewStringUTF(env, ptr);
     return ret;
 }
 
< prev index next >