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

Reply via email to