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