On Mon, 12 Oct 2026 09:30:04 GMT, Aleksey Shipilev <[email protected]> wrote:
>> I hit a circular dependency involving oopCast.inline.hpp when I was changing >> code in one of the *oop.inline.hpp files. One solution is to create an >> oopCast.hpp file with the declarations and include it in oopCast.inline.hpp >> before including the rest of the header files: >> >> https://github.com/openjdk/jdk/blob/master/doc/hotspot-style.md: >> >> All .inline.hpp files should include their corresponding .hpp file as the >> first include line with a blank line separating it from the rest of the >> include lines. Declarations needed by other files should be put in the .hpp >> file, and not in the .inline.hpp file. This rule exists to resolve problems >> with circular dependencies between .inline.hpp files. >> >> >> I propose that we instead move oop_cast to oop.inline.hpp. >> >> I also made some cleanups to the surrounding type checking functions. >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > src/hotspot/share/oops/oop.inline.hpp line 241: > >> 239: } >> 240: >> 241: bool oopDesc::is_refined_objArray() const { return >> klass()->is_refined_objArray_klass(); } > > This seems to belong in the `oopDesc::is_*()` block a few lines above? My thinking was the the block above should only contain the 1:1 type checks and things that want to check more than that was moved out of the block. This function is an oddity that checks if the type is either of two types, so I relegated it from that block. I did the same with `is_array_with_oops`. You still want me to move it back? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/33287#discussion_r4247088222
