RFR: 8375621: Move RBTree implementation to inline file to minimize included headers
Casper Norrbin
cnorrbin at openjdk.org
Mon Jan 19 11:21:14 UTC 2026
Hi everyone,
The red-black tree implementation is split across `rbTree.hpp` and `rbTree.inline.hpp`. Some small `AbstractRBTree` functions are kept in `rbTree.hpp`, and also all of `RBTree`'s implementation. This makes the file less readable and requires extra header inclusions, notably the `os` class, which in turn includes additional unnecessary dependancies.
In this PR I have moved all implementation code `rbTree.inline.hpp` instead. As a result, `rbTree.hpp` now only contains declarations, making it cleaner and limiting header inclusions to what is strictly necessary. Implementation-specific headers are now only included in the inline file.
Additionally, I changed `RBTreeCHeapAllocator` to use `AllocateHeap`/`FreeHeap` from `allocation` instead of `os::malloc`/`os::free`, which allows us to get rid of the `os` dependancy altogether.
Note: This PR is dependant on #29082, which adds arena-style tree allocators, which this PR then moves to the inline file.
Testing:
- Oracle tiers 1-5
-------------
Depends on: https://git.openjdk.org/jdk/pull/29082
Commit messages:
- Updated copyright headers
- move to rbtree.inline
Changes: https://git.openjdk.org/jdk/pull/29295/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29295&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8375621
Stats: 648 lines in 2 files changed: 388 ins; 181 del; 79 mod
Patch: https://git.openjdk.org/jdk/pull/29295.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/29295/head:pull/29295
PR: https://git.openjdk.org/jdk/pull/29295
More information about the hotspot-dev
mailing list