RFR: 8336042: Caller/callee param size mismatch in deoptimization causes crash [v3]
Richard Reingruber
rrich at openjdk.org
Fri Feb 28 15:27:05 UTC 2025
On Fri, 28 Feb 2025 12:11:05 GMT, Richard Reingruber <rrich at openjdk.org> wrote:
>> src/hotspot/share/runtime/deoptimization.cpp line 645:
>>
>>> 643: methodHandle method(current, deopt_sender.interpreter_frame_method());
>>> 644: Bytecode_invoke cur(method, deopt_sender.interpreter_frame_bci());
>>> 645: if (!cur.is_invokedynamic() && MethodHandles::has_member_arg(cur.klass(), cur.name())) {
>>
>> I was confused with this new condition but I see is the same we have in `vframeArray::unpack_to_stack()`.
>
> +1
> I see there's also an assertion in `ConstantPool::klass_ref_index_at()`. It might be worth a little comment.
Actually I think that there should be an abstraction that hides that detail. Probably `has_member_arg` should be a method of `Bytecode_invoke`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23557#discussion_r1975594243
More information about the hotspot-dev
mailing list