On Thu, 27 Apr 2023 23:35:02 GMT, Vladimir Ivanov <vliva...@openjdk.org> wrote:
>> Hi @iwanowww . I finished implementing a version of this like the >> illustration below (I didn't add a Candidate class). >> >> >> ScopeValue >> ObjectValue >> ObjectAllocationValue >> AutoBoxObjectValue >> ObjectMergeValue >> >> >> Here are some observations: >> >> - I don't think ObjectMergeValue should be under ObjectValue. The two >> classes only have two fields in common (_id and _visited). I think it should >> be a subclass of ScopeValue. >> - ObjectCandidateValue would need to go under ObjectAllocationValue because >> it essentially _is_ an ObjectAllocationValue in most aspects. >> - I didn't add a ObjectCandidateValue class because that class would need to >> go under ObjectAllocationValue and we would still need to do an >> "is_object_candidate" before all "is_object_allocation" and we would end up >> in much the situation that we want to avoid - needing to do is_object_merge >> before is_object. >> - It seems the best place to flag an object as candidate is really in >> ObjectAllocationValue. >> >> What do you think? As I said, I already have the code, if you want I can >> push it and you take a look. > > Can `ObjectCandidateValue` be a wrapper around a `ObjectAllocationValue`? > > It does make sense to separate `ObjectMergeValue` and `ObjectValue`. I need to to study the code in more details. Seems like I'm missing something important here. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/12897#discussion_r1179798907