On Thu, 13 Apr 2023 10:15:02 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:

> Your fix introduced a hidden dependency of this new structure on the 
> JPLISEnvironment structure and some Java agents implementation details:
> 
> ```
> 202 struct JPLISEnvironmentMirror {
> 203   jvmtiEnv* mJVMTIEnv; // the JVMTI environment
> 204   const void* mAgent;  // corresponding agent
> 205   jboolean mIsRetransformer; // indicates if special environment
> 206 };
> ```
> 
> It does not look good to me but I can't suggest any other approach at the 
> moment. How important is this part? Have you considered other ways to achieve 
> what is needed?

Yes. It is the key to locating which JavaAgent maps to which JvmtiEnv. I tried 
some other variants, but those would change the layout of the exported structs 
in jplisAgent.h, and I don't know if people depend on that layout, implicitly 
or explicitly. So I choose not go down that route.

This seemed the best alternative since we own jdk.instrument and the 
implementation on the JDK side is unlikely to change very much.

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

PR Comment: https://git.openjdk.org/jdk/pull/12923#issuecomment-1506830279

Reply via email to