On Wed, 18 Sep 2024 18:35:22 GMT, Dean Long <dl...@openjdk.org> wrote:

> For CallInfo::resolved_method() and selected_method(), it seems like this 
> could be a change in behavior if the caller allows a safepoint. Can we assert 
> that these functions never see an old method?

These functions *do* see old methods.  The code tries to then store the result 
of these somewhere that's visited by redefinition before any safepoint that can 
make this method old again.  Whether or not we have all the required NSVs is 
another question, especially in the compiledIC.  I know the interpreter is 
correct because if the method is deleted, redefinition will clear the method 
entry and the interpreter will call into the runtime and the interpreter 
runtime will throw NSME directly.

resolved_indy_entries.method is the adapter method which can't be deleted, we 
could add an assert about that.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20874#issuecomment-2359200703

Reply via email to