< prev index next >

src/java.desktop/share/native/libfontmanager/freetypeScaler.c

Print this page
rev 56631 : 8232381: add result NULL-checking to freetypeScaler.c

*** 671,684 **** jlong image = Java_sun_font_FreetypeFontScaler_getGlyphImageNative( env, scaler, font2D, pScalerContext, pScaler, glyphCode); info = (GlyphInfo*) jlong_to_ptr(image); (*env)->SetFloatField(env, metrics, sunFontIDs.xFID, info->advanceX); (*env)->SetFloatField(env, metrics, sunFontIDs.yFID, info->advanceY); - free(info); } static GlyphInfo* getNullGlyphImage() { GlyphInfo *glyphInfo = (GlyphInfo*) calloc(1, sizeof(GlyphInfo)); --- 671,689 ---- jlong image = Java_sun_font_FreetypeFontScaler_getGlyphImageNative( env, scaler, font2D, pScalerContext, pScaler, glyphCode); info = (GlyphInfo*) jlong_to_ptr(image); + if (info != NULL) { (*env)->SetFloatField(env, metrics, sunFontIDs.xFID, info->advanceX); (*env)->SetFloatField(env, metrics, sunFontIDs.yFID, info->advanceY); free(info); + } else { + jfloat advanceDefault = 0.0f; + (*env)->SetFloatField(env, metrics, sunFontIDs.xFID, advanceDefault); + (*env)->SetFloatField(env, metrics, sunFontIDs.yFID, advanceDefault); + } } static GlyphInfo* getNullGlyphImage() { GlyphInfo *glyphInfo = (GlyphInfo*) calloc(1, sizeof(GlyphInfo));
< prev index next >