On Tue, 9 May 2023 09:05:57 GMT, Ambarish Rapte <ara...@openjdk.org> wrote:

>> - Added missing exception checks for JNI calls.
>>  - Improved JNI error checking by checking for both exception and return 
>> value.
>>  - Minor code clean up.
>
> modules/javafx.media/src/main/native/jfxmedia/Locator/Locator.cpp line 66:
> 
>> 64:         mid_toString = env->GetMethodID(klass, "getStringLocation", 
>> "()Ljava/lang/String;");
>> 65:         env->DeleteLocalRef(klass);
>> 66:         if (javaEnv.clearException() || mid_toString == NULL)
> 
> The variable name can be changed. It holds id to 
> `Locator.getStringLocation()`, so the variable name does not reflect it 
> correctly. As the PR is touching this code, it seems ok to change.

Fixed.

> modules/javafx.media/src/main/native/jfxmedia/jni/JavaInputStreamCallbacks.cpp
>  line 68:
> 
>> 66:         createConnectionHolder = env->GetMethodID(klass, 
>> "createConnectionHolder", 
>> "()Lcom/sun/media/jfxmedia/locator/ConnectionHolder;");
>> 67:         env->DeleteLocalRef(klass);
>> 68:         if (javaEnv.reportException() || createConnectionHolder == 0)
> 
> I would recommend to add as  `(createConnectionHolder == NULL)`, similar to 
> the below changes.
> And may be change previous instance and declaration of 
> `createConnectionHolder`.

Fixed.

> modules/javafx.media/src/main/native/jfxmedia/jni/JavaInputStreamCallbacks.cpp
>  line 73:
> 
>> 71: 
>> 72:     jobject connectionHolder = env->CallObjectMethod(jLocator, 
>> createConnectionHolder);
>> 73:     if (javaEnv.reportException() || NULL == connectionHolder)
> 
> May be enclose in parenthesis, like the below changes :  `(NULL == 
> connectionHolder)`

Fixed.

> modules/javafx.media/src/main/native/jfxmedia/jni/JavaInputStreamCallbacks.cpp
>  line 244:
> 
>> 242:         }
>> 243: 
>> 244:         javaEnv.reportException();
> 
> modules/javafx.media/src/main/native/jfxmedia/jni/JavaInputStreamCallbacks.cpp
>  : 240
> 
> The `reportException()` method clears the exception and **prints** the 
> exception message. So this change would result in behavior change. Is this 
> change safe ?
> Similar change of removing `reportException()` can be done in `NeedBuffer()` 
> method also.

Yes, it should be safe. I do not see any need to print exception, since it is 
unlikely will happen. Also, these methods called many times to read data and 
`clearException()` is more light weight. I updated `NeedBuffer()` to use 
`clearException()`.

> modules/javafx.media/src/main/native/jfxmedia/jni/JavaMediaWarningListener.cpp
>  line 49:
> 
>> 47:         jclass mediaUtilsClass = 
>> pEnv->FindClass("com/sun/media/jfxmediaimpl/MediaUtils");
>> 48:         if (!javaEnv.clearException() && mediaUtilsClass != NULL) {
>> 49:             jmethodID errorMethodID = 
>> pEnv->GetStaticMethodID(mediaUtilsClass,
> 
> `errorMethodID`  ->  `nativeWarningMethodID`

Fixed.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1094#discussion_r1212352448
PR Review Comment: https://git.openjdk.org/jfx/pull/1094#discussion_r1212354698
PR Review Comment: https://git.openjdk.org/jfx/pull/1094#discussion_r1212354937
PR Review Comment: https://git.openjdk.org/jfx/pull/1094#discussion_r1212365506
PR Review Comment: https://git.openjdk.org/jfx/pull/1094#discussion_r1212367015

Reply via email to