jdk/src/share/native/sun/java2d/Disposer.c
changeset 20422 1a47790e7d9b
parent 5506 202f599c92aa
child 23010 6dadb192ad81
equal deleted inserted replaced
20421:8fab9959a1bc 20422:1a47790e7d9b
    36 JNIEXPORT void JNICALL
    36 JNIEXPORT void JNICALL
    37 Java_sun_java2d_Disposer_initIDs(JNIEnv *env, jclass disposerClass)
    37 Java_sun_java2d_Disposer_initIDs(JNIEnv *env, jclass disposerClass)
    38 {
    38 {
    39     addRecordMID = (*env)->GetStaticMethodID(env, disposerClass, "addRecord",
    39     addRecordMID = (*env)->GetStaticMethodID(env, disposerClass, "addRecord",
    40                                              "(Ljava/lang/Object;JJ)V");
    40                                              "(Ljava/lang/Object;JJ)V");
    41     if (addRecordMID == 0) {
    41     if (addRecordMID != 0) {
    42         JNU_ThrowNoSuchMethodError(env, "Disposer.addRecord");
    42         dispClass = (*env)->NewGlobalRef(env, disposerClass);
    43     }
    43     }
    44     dispClass = (*env)->NewGlobalRef(env, disposerClass);
       
    45 }
    44 }
    46 
    45 
    47 JNIEXPORT void JNICALL
    46 JNIEXPORT void JNICALL
    48 Disposer_AddRecord(JNIEnv *env, jobject obj, GeneralDisposeFunc disposer, jlong pData) {
    47 Disposer_AddRecord(JNIEnv *env, jobject obj, GeneralDisposeFunc disposer, jlong pData) {
    49 
    48 
    50     if (dispClass == NULL) {
    49     if (dispClass == NULL) {
    51         /* Needed to initialize the Disposer class as it may be not yet referenced */
    50         /* Needed to initialize the Disposer class as it may be not yet referenced */
    52         jclass clazz = (*env)->FindClass(env, "sun/java2d/Disposer");
    51         jclass clazz = (*env)->FindClass(env, "sun/java2d/Disposer");
       
    52         if ((*env)->ExceptionCheck(env)) {
       
    53             // If there's exception pending, we'll just return.
       
    54             return;
       
    55         }
    53     }
    56     }
    54 
    57 
    55     (*env)->CallStaticVoidMethod(env, dispClass, addRecordMID,
    58     (*env)->CallStaticVoidMethod(env, dispClass, addRecordMID,
    56                                  obj, ptr_to_jlong(disposer), pData);
    59                                  obj, ptr_to_jlong(disposer), pData);
    57 }
    60 }