On Mon, 19 May 2025 07:35:16 GMT, Johan Sjölen <jsjo...@openjdk.org> wrote:

> Hi,
> 
>  The constant pool currently has a lot of methods specific to extracting 
> parts of the operands array. What this array actually is, is a sequence of 
> bootstrap method attribute entries, where each entry has the following 
> components:
> 
> ```c++
> struct BSMAE {
>   u2 bootstrap_method_index;
>   u2 argument_count;
>   u2 arguments[argument_count];
> }
> 
> 
> We can removes some of these operands array specific methods, and instead 
> allows you to extract BSMAttributeEntrys which you can then use to extract 
> its piece wise components. This makes for a nicer interface, and a bit easier 
> to come into as a reader of the code, as it more closely mirrors the JVMS. 
> 
> Please consider!
> 
> Testing: Currently GHA, running tier1-tier3

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ConstantPool.java line 
126:

> 124:   private static int INDY_BSM_OFFSET = 0;
> 125:   private static int INDY_ARGC_OFFSET = 1;
> 126:   private static int INDY_ARGV_OFFSET = 2;

Is the SA code that references these fields still correct? It seems the 
references are from the ClassWriter, which we don't have very good test 
coverage for. Probably this is a bug that is not being detected.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25298#discussion_r2096231130

Reply via email to