< prev index next >
src/java.desktop/windows/native/libfontmanager/fontpath.c
Print this page
*** 303,346 ****
}
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)) {
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, familyLC);
return 0;
} else if (mapHasKey) {
/* Delete the created references before return */
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, 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->list);
return 0;
}
memset(&lfw, 0, sizeof(lfw));
--- 303,350 ----
}
familyLC = (*env)->CallObjectMethod(env, fmi->family,
fmi->toLowerCaseMID, fmi->locale);
/* Delete the created reference after its usage */
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,358 ****
--- 353,363 ----
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 >