< 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 >