On Wed, 23 Apr 2025 22:39:40 GMT, Chen Liang <li...@openjdk.org> wrote:
> When LambdaForms are interpreted, so are field lambda forms. When this > happens, we may get into an infinite recursion due to field lambda forms > using `MethodHandleStatics.UNSAFE` via field lambda form. > > I think the best solution here is to always eagerly compile field DMH forms - > we already do so for all method forms, and there is a finite number of field > forms, mostly pregenerated. The reference with cast form is erroneously > missed, and it is actually the culprit of this issue. Will pregenerate that > in another patch. Marked as reviewed by jvernee (Reviewer). src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java line 217: > 215: } > 216: LambdaForm lform = preparedLambdaForm(mtype, which); > 217: maybeCompile(lform, m); Ok, looks like this can be dropped because we always call `compileToBytecode` in `makePreparedLambdaForm`? ------------- PR Review: https://git.openjdk.org/jdk/pull/24835#pullrequestreview-2807133715 PR Review Comment: https://git.openjdk.org/jdk/pull/24835#discussion_r2068704507