On Mon, 10 Feb 2025 03:11:22 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
>> Vladimir Kozlov has updated the pull request incrementally with one >> additional commit since the last revision: >> >> Fix Zero and Minimal VM builds > > I almost wished I hadn't looked because there is a lot of SA CodeBlob support > that could use some cleanup. Most notably I think most of the wrapper > subclasses are not needed by SA, and could be served by one common class. See > what I'm doing in #23456 for JavaThread subclasses. Wrapper classes don't > need to be 1-to-1 with the class type they are wrapping. A single wrapper > class type can handle any number of hotspot types. It usually just make more > sense for them to be 1-to-1, but when they are trivial and the implementation > is replicated across subtypes, just having one wrapper class implement them > all can simplify things. > > The other thing I noticed is a lot of the subtypes seem to be doing some > unnecessary things like registering Observers, and they all do something like > the following: > > 44 Type type = db.lookupType("BufferBlob"); > > Even when it never references "type". > > I'm not suggesting you clean up any of this now, but just pointed it out. I > might file an issue and try to clean it up myself at some point. > > I still need to take a closer look at the SA changes. Before I forgot to answer you, @plummercj I completely agree with your comment about cleaning up wrapper subclasses which do nothing. I think some wrapper subclasses for CodeBlob were kept because of `is*()` which were used only in `PStack` to print name. Why not use `getName()` for this purpose without big `if/else` there? An other purpose could be a place holder for additional information in a future which never come. Other wrapper provides information available in `CodeBlob`. Like `RuntimeStub. callerMustGCArguments()`. `_caller_must_gc_arguments` field is part of VM's `CodeBlob` class for some time now. Looks like I missed change in SA when did change in VM. So yes, feel free to clean this up. I will help with review. ------------- PR Comment: https://git.openjdk.org/jdk/pull/23533#issuecomment-2652321179