-
Notifications
You must be signed in to change notification settings - Fork 6.3k
8368966: Remove spurious VMStructs friends #27583
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
👋 Welcome back fandreuzzi! A progress list of the required criteria for merging this PR into |
@fandreuz This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 25 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@stefank, @albertnetymk) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
|
||
template <typename E> | ||
class GrowableArray : public GrowableArrayWithAllocator<E, GrowableArray<E>> { | ||
friend class VMStructs; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was a bit surprised to see that you added a friend declaration. Was this done because you removed the one in the parent class?
I see that vmStructs.cpp has GrowableArray listed:
nonstatic_field(GrowableArrayBase, _len, int) \
nonstatic_field(GrowableArrayBase, _capacity, int) \
nonstatic_field(GrowableArray<int>, _data, int*)
So, I guess it makes sense to move it here. OTOH, the exposed _data
field is inside GrowableArrayView, so maybe it would work to put the friend declaration there instead?
I guess either way is fine but there's a risk that there will be some churn about where to put the friend declaration if someone wants add one of the classes between (and including) GrowableArrayView and GrowableArray.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this done because you removed the one in the parent class?
Yeah that was my reasoning.
I guess either way is fine but there's a risk that there will be some churn about where to put the friend declaration if someone wants add one of the classes between (and including) GrowableArrayView and GrowableArray.
To me it looks less confusing to have the friend
declaration for the type which is referenced in vmStructs
. But both are legal, do you think moving the friend
declaration to the type which declares the referenced field would be more appropriate? If yes, I'll track other similar patterns too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think such churn is important for VMStructs. Let's keep your change.
Thanks for the review @stefank. |
/integrate |
/sponsor |
Going to push as commit dfd3832.
Your commit was automatically rebased without conflicts. |
@albertnetymk @fandreuz Pushed as commit dfd3832. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
In this PR I propose a small clean up to remove several spurious friends of
VMStructs
. Either I could not find any reference to them invmStructs*
, or no private symbols is mentioned.Passes tier1 and tier2 (fastdebug).
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/27583/head:pull/27583
$ git checkout pull/27583
Update a local copy of the PR:
$ git checkout pull/27583
$ git pull https://git.openjdk.org/jdk.git pull/27583/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 27583
View PR using the GUI difftool:
$ git pr show -t 27583
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/27583.diff
Using Webrev
Link to Webrev Comment