Ok. I only half heatedly suggest the following

  73     loadedClass = (jclass) jni_env->CallObjectMethod(loader, methodID, VAR_ARGS(className));

And then VAR_ARGS can contain the reference to TRACE_JNI_CALL.

Chris

On 4/29/19 2:58 PM, Jean Christophe Beyler wrote:
Hi Chris,

Thanks for the review! It is the only issue I have with the system now and I had not found a good solution for:

as CallObjectMethod is a variadic method, I can't put TRACE_JNI_CALL at the end; so I put right before the end; that allows me to do this:

+jobject ExceptionCheckingJniEnv::CallObjectMethod(jobject obj, jmethodID methodID, int line,
+                         const char* file_name, ...) {
+  JNIVerifier<> marker(this, "CallObjectMethod", obj, methodID, line, file_name);
+
+  va_list args;
+  va_start(args, file_name);
+  jobject result = _jni_env->CallObjectMethodV(obj, methodID, args);
+  va_end(args);
+  return result;
+}
Putting it at the end would mean I would have to play with the va_list to remove the last one, and from what I have understood with va_list, it's kind of a no-no to do so. So I left at this.

          
Do you have any better suggestion?
Thanks!
Jc

On Mon, Apr 29, 2019 at 10:38 AM Chris Plummer <[email protected]> wrote:
Hi JC,

In em01t002.cpp, is this correct?

  73     loadedClass = (jclass) jni_env->CallObjectMethod(loader, methodID, TRACE_JNI_CALL, className);

Shouldn't the TRACE_JNI_CALL arg be last? If so, can you look into why this test didn't fail as a result.

Other than that the changes look good.

thanks,

Chris

On 4/26/19 5:52 PM, Jean Christophe Beyler wrote:
Hi all,

(Re-sending with subject line complete :-))

Since JDK-8213501 finally merged (sorry it took so long), I am able to continue this work. Here is the work that puts back the messages for any calls that were moved around due to JDK-8212884.


All modified tests pass on my local dev machine.

Thanks,
Jc




--

Thanks,
Jc




Reply via email to