8143002: [Parfait] JNI exception pending in fontpath.c:1300
Reviewed-by: prr, serb
This commit is contained in:
parent
24e53a99d3
commit
730f05c91c
@ -1156,8 +1156,8 @@ Java_sun_font_FontConfigManager_getFontConfig
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
pattern = (*FcNameParse)((FcChar8 *)fcName);
|
pattern = (*FcNameParse)((FcChar8 *)fcName);
|
||||||
|
(*env)->ReleaseStringUTFChars(env, fcNameStr, (const char*)fcName);
|
||||||
if (pattern == NULL) {
|
if (pattern == NULL) {
|
||||||
(*env)->ReleaseStringUTFChars(env, fcNameStr, (const char*)fcName);
|
|
||||||
closeFontConfig(libfontconfig, JNI_FALSE);
|
closeFontConfig(libfontconfig, JNI_FALSE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1175,7 +1175,6 @@ Java_sun_font_FontConfigManager_getFontConfig
|
|||||||
fontset = (*FcFontSort)(NULL, pattern, FcTrue, NULL, &result);
|
fontset = (*FcFontSort)(NULL, pattern, FcTrue, NULL, &result);
|
||||||
if (fontset == NULL) {
|
if (fontset == NULL) {
|
||||||
(*FcPatternDestroy)(pattern);
|
(*FcPatternDestroy)(pattern);
|
||||||
(*env)->ReleaseStringUTFChars(env, fcNameStr, (const char*)fcName);
|
|
||||||
closeFontConfig(libfontconfig, JNI_FALSE);
|
closeFontConfig(libfontconfig, JNI_FALSE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1207,7 +1206,6 @@ Java_sun_font_FontConfigManager_getFontConfig
|
|||||||
}
|
}
|
||||||
(*FcPatternDestroy)(pattern);
|
(*FcPatternDestroy)(pattern);
|
||||||
(*FcFontSetDestroy)(fontset);
|
(*FcFontSetDestroy)(fontset);
|
||||||
(*env)->ReleaseStringUTFChars(env, fcNameStr, (const char*)fcName);
|
|
||||||
closeFontConfig(libfontconfig, JNI_FALSE);
|
closeFontConfig(libfontconfig, JNI_FALSE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1249,8 +1247,6 @@ Java_sun_font_FontConfigManager_getFontConfig
|
|||||||
free(file);
|
free(file);
|
||||||
(*FcPatternDestroy)(pattern);
|
(*FcPatternDestroy)(pattern);
|
||||||
(*FcFontSetDestroy)(fontset);
|
(*FcFontSetDestroy)(fontset);
|
||||||
(*env)->ReleaseStringUTFChars(env,
|
|
||||||
fcNameStr, (const char*)fcName);
|
|
||||||
closeFontConfig(libfontconfig, JNI_FALSE);
|
closeFontConfig(libfontconfig, JNI_FALSE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1298,6 +1294,16 @@ Java_sun_font_FontConfigManager_getFontConfig
|
|||||||
if (includeFallbacks) {
|
if (includeFallbacks) {
|
||||||
fcFontArr =
|
fcFontArr =
|
||||||
(*env)->NewObjectArray(env, fontCount, fcFontClass, NULL);
|
(*env)->NewObjectArray(env, fontCount, fcFontClass, NULL);
|
||||||
|
if (IS_NULL(fcFontArr)) {
|
||||||
|
free(family);
|
||||||
|
free(fullname);
|
||||||
|
free(styleStr);
|
||||||
|
free(file);
|
||||||
|
(*FcPatternDestroy)(pattern);
|
||||||
|
(*FcFontSetDestroy)(fontset);
|
||||||
|
closeFontConfig(libfontconfig, JNI_FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
(*env)->SetObjectField(env,fcCompFontObj, fcAllFontsID, fcFontArr);
|
(*env)->SetObjectField(env,fcCompFontObj, fcAllFontsID, fcFontArr);
|
||||||
}
|
}
|
||||||
fn=0;
|
fn=0;
|
||||||
@ -1306,18 +1312,23 @@ Java_sun_font_FontConfigManager_getFontConfig
|
|||||||
if (family[j] != NULL) {
|
if (family[j] != NULL) {
|
||||||
jobject fcFont =
|
jobject fcFont =
|
||||||
(*env)->NewObject(env, fcFontClass, fcFontCons);
|
(*env)->NewObject(env, fcFontClass, fcFontCons);
|
||||||
|
if (IS_NULL(fcFont)) break;
|
||||||
jstr = (*env)->NewStringUTF(env, (const char*)family[j]);
|
jstr = (*env)->NewStringUTF(env, (const char*)family[j]);
|
||||||
|
if (IS_NULL(jstr)) break;
|
||||||
(*env)->SetObjectField(env, fcFont, familyNameID, jstr);
|
(*env)->SetObjectField(env, fcFont, familyNameID, jstr);
|
||||||
if (file[j] != NULL) {
|
if (file[j] != NULL) {
|
||||||
jstr = (*env)->NewStringUTF(env, (const char*)file[j]);
|
jstr = (*env)->NewStringUTF(env, (const char*)file[j]);
|
||||||
|
if (IS_NULL(jstr)) break;
|
||||||
(*env)->SetObjectField(env, fcFont, fontFileID, jstr);
|
(*env)->SetObjectField(env, fcFont, fontFileID, jstr);
|
||||||
}
|
}
|
||||||
if (styleStr[j] != NULL) {
|
if (styleStr[j] != NULL) {
|
||||||
jstr = (*env)->NewStringUTF(env, (const char*)styleStr[j]);
|
jstr = (*env)->NewStringUTF(env, (const char*)styleStr[j]);
|
||||||
|
if (IS_NULL(jstr)) break;
|
||||||
(*env)->SetObjectField(env, fcFont, styleNameID, jstr);
|
(*env)->SetObjectField(env, fcFont, styleNameID, jstr);
|
||||||
}
|
}
|
||||||
if (fullname[j] != NULL) {
|
if (fullname[j] != NULL) {
|
||||||
jstr = (*env)->NewStringUTF(env, (const char*)fullname[j]);
|
jstr = (*env)->NewStringUTF(env, (const char*)fullname[j]);
|
||||||
|
if (IS_NULL(jstr)) break;
|
||||||
(*env)->SetObjectField(env, fcFont, fullNameID, jstr);
|
(*env)->SetObjectField(env, fcFont, fullNameID, jstr);
|
||||||
}
|
}
|
||||||
if (fn==0) {
|
if (fn==0) {
|
||||||
@ -1331,7 +1342,6 @@ Java_sun_font_FontConfigManager_getFontConfig
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(*env)->ReleaseStringUTFChars (env, fcNameStr, (const char*)fcName);
|
|
||||||
(*FcFontSetDestroy)(fontset);
|
(*FcFontSetDestroy)(fontset);
|
||||||
(*FcPatternDestroy)(pattern);
|
(*FcPatternDestroy)(pattern);
|
||||||
free(family);
|
free(family);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user