< prev index next >
src/java.desktop/windows/native/libfontmanager/fontpath.c
Print this page
@@ -303,44 +303,48 @@
}
familyLC = (*env)->CallObjectMethod(env, fmi->family,
fmi->toLowerCaseMID, fmi->locale);
/* Delete the created reference after its usage */
- DeleteLocalReference(env, fmi->family);
if ((*env)->ExceptionCheck(env)) {
+ DeleteLocalReference(env, fmi->family);
return 0;
}
/* check if already seen this family with a different charset */
jboolean mapHasKey = (*env)->CallBooleanMethod(env,
fmi->familyToFontListMap,
fmi->containsKeyMID,
familyLC);
if ((*env)->ExceptionCheck(env)) {
/* Delete the created references before return */
+ DeleteLocalReference(env, fmi->family);
DeleteLocalReference(env, familyLC);
return 0;
} else if (mapHasKey) {
/* Delete the created references before return */
+ DeleteLocalReference(env, fmi->family);
DeleteLocalReference(env, familyLC);
return 1;
}
fmi->list = (*env)->NewObject(env,
fmi->arrayListClass, fmi->arrayListCtr, 4);
if (fmi->list == NULL) {
/* Delete the created references before return */
+ DeleteLocalReference(env, fmi->family);
DeleteLocalReference(env, familyLC);
return 0;
}
(*env)->CallObjectMethod(env, fmi->familyToFontListMap,
fmi->putMID, familyLC, fmi->list);
/* Delete the created reference after its usage */
DeleteLocalReference(env, familyLC);
if ((*env)->ExceptionCheck(env)) {
/* Delete the created reference before return */
+ DeleteLocalReference(env, fmi->family);
DeleteLocalReference(env, fmi->list);
return 0;
}
memset(&lfw, 0, sizeof(lfw));
@@ -349,10 +353,11 @@
EnumFontFamiliesExW(screenDC, &lfw,
(FONTENUMPROCW)EnumFontFacesInFamilyProcW,
lParam, 0L);
/* Delete the created reference after its usage in the enum function */
+ DeleteLocalReference(env, fmi->family);
DeleteLocalReference(env, fmi->list);
return 1;
}
/* It looks like TrueType fonts have " (TrueType)" tacked on the end of their
< prev index next >