On Tue, 19 Jan 2021 19:55:22 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

>> Severin Gehwolf has updated the pull request with a new target base due to a 
>> merge or a rebase. The incremental webrev excludes the unrelated changes 
>> brought in by the merge/rebase. The pull request contains four additional 
>> commits since the last revision:
>> 
>>  - Merge test files into one
>>  - Adress review feedback from dholmes
>>  - Merge branch 'master' into JDK-8258836-check-jni-mbeanserver
>>  - 8258836: JNI local refs exceed capacity getDiagnosticCommandInfo
>
> src/jdk.management/share/native/libmanagement_ext/DiagnosticCommandImpl.c 
> line 113:
> 
>> 111:       return NULL;
>> 112:     }
>> 113:     (*env)->PopLocalFrame(env, obj);
> 
> This needs to assign the result to `obj` in order to get the affect you are 
> looking for. Otherwise it is really no different than passing in `NULL.`, and 
> in the `SetObjectArrayElement` that follows you'll end up assigning a popped 
> localref. I'm surprised this didn't result in some sort of test failure. Are 
> you testing with `num_args > 1`? Perhaps the localref frames are not eagerly 
> reused.

Doh! Thanks Chris! Fixed. It did result in test failures (for fastdebug build). 
For example 
https://github.com/jerboaa/jdk/runs/1727117374?check_suite_focus=true Sorry for 
missing this.

> src/jdk.management/share/native/libmanagement_ext/DiagnosticCommandImpl.c 
> line 172:
> 
>> 170:   }
>> 171:   if (num_commands == 0) {
>> 172:       (*env)->PopLocalFrame(env, result);
> 
> Also here you need to assign the result to `result`.

Fixed.

> src/jdk.management/share/native/libmanagement_ext/DiagnosticCommandImpl.c 
> line 222:
> 
>> 220:           return NULL;
>> 221:       }
>> 222:       (*env)->PopLocalFrame(env, obj);
> 
> ...and assign to `obj` here.

Fixed.

> src/jdk.management/share/native/libmanagement_ext/DiagnosticCommandImpl.c 
> line 227:
> 
>> 225:       EXCEPTION_CHECK_AND_FREE(dcmd_info_array);
>> 226:   }
>> 227:   (*env)->PopLocalFrame(env, result);
> 
> ...and assign to `result` here.

Fixed now.

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

PR: https://git.openjdk.java.net/jdk/pull/2130

Reply via email to