On Fri, 1 Aug 2025 15:49:57 GMT, Chen Liang <li...@openjdk.org> wrote:

> Provide a general facility for our null check APIs like 
> Objects::requireNonNull or future Checks::nullCheck (void), converting the 
> existing infrastructure to start tracking from a given stack site (depth 
> offset) and a given stack slot (offset value).

src/hotspot/share/classfile/javaClasses.cpp line 3060:

> 3058: }
> 3059: 
> 3060: bool java_lang_Throwable::get_method_and_bci(oop throwable, Method** 
> method, int* bci, int depth, bool hidden_ok) {

Suggestion:

bool java_lang_Throwable::get_method_and_bci(oop throwable, Method** method, 
int* bci, int depth, bool allow_hidden) {

src/hotspot/share/interpreter/bytecodeUtils.hpp line 40:

> 38:   static bool get_NPE_message_at(outputStream* ss, Method* method, int 
> bci);
> 39:   // NPE extended message. Return true if string is printed.
> 40:   static bool get_NPE_message_at(outputStream* ss, Method* method, int 
> bci, int slot);

Can you combine these with a default slot parameter (-1?) ? I'm suspecting not 
even though it might appear that once you have the slot you could call the new 
method, but the new method seems to expect only particular "kinds" of slot i.e. 
non-bytecode. But this is not documented at all. Please add comments to make it 
clear what the `slot` parameter is expected to be and how these two methods 
differ.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26600#discussion_r2248868942
PR Review Comment: https://git.openjdk.org/jdk/pull/26600#discussion_r2248881502

Reply via email to