RFR: 8321413: IllegalArgumentException: Code length outside the allowed range while creating a jlink image [v12]
Mandy Chung
mchung at openjdk.org
Fri Dec 13 23:51:38 UTC 2024
On Fri, 13 Dec 2024 23:32:14 GMT, Henry Jen <henryjen at openjdk.org> wrote:
>> src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java line 619:
>>
>>> 617: // generate dedup set fields and provider methods
>>> 618: var dedupSets = genConstants(clb);
>>> 619:
>>
>> These constants are all for building the module descriptors and `dedupSets` is needed by `genModuleDescriptorsMethod`. This can be moved and be called in `genModuleDescriptorsMethod`.
>
> The static initializer currently only contains the cache from DedupSet, but it feels wrong to generate the static initializer in genModuleDescriptorsMethod.
I was wondering that there should be `genClassInitializer`. It seems to me that `SystemModulesClassGenerator` should have `List<Snippet> clinitSnippets;` and `genClassInitializer` will emit the code from the snippets if not empty. It'd have to be called at the end since other code might add clinit snippet in the future.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21022#discussion_r1884657494
More information about the core-libs-dev
mailing list