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
8258048: Placeholder hash code is the same as Dictionary hash code #1789
Conversation
|
Webrevs
|
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.
Hi Coleen,
This all looks good to me.
Thanks,
David
@coleenp This change now passes all automated pre-integration checks. 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 3 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the
|
Thanks, David. |
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.
Changes look good.
Thanks, Harold
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.
Nice cleanup Coleen!
Lois
Symbol* name, | ||
ClassLoaderData* loader_data, | ||
classloadAction action, | ||
Symbol* supername, | ||
Thread* thread) { | ||
PlaceholderEntry* probe = get_entry(index, hash, name, loader_data); | ||
PlaceholderEntry* probe = get_entry(hash, name, loader_data); |
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.
Minor nit of a comment since you are in this file and specifically in this method can you consider changing the if statement conditional at line #143 to explicitly check if (probe != NULL)? I noticed line #167 has this type of conditional and it would be good to have consistency. I think there are some other cases in this file, like line #119, where it is inconsistent.
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.
The if (probe) conditional on line #143 isn't necessary because we've just created a placeholder and code above would have null pointer references if it failed (in add_entry -> new_entry), so I removed it. I fixed another check against NULL just above this. I don't see any others here at least.
Thanks for reviewing!
I took out some extra header file includes and fixed or removed some null checks. I'm rerunning sanity checks (tier1 on linux-x64, macosx-64, windows-x64 and linux-aarch64). Also cross compiled for ppc, arm, s390 and zero. Changing include files can be dangerous. |
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.
Thank you for making suggested changes. Looks good.
Lois
Thanks for the rereview, Lois. Sanity tests now passed. |
@coleenp Since your change was applied there have been 3 commits pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit c463264. |
This change is a set of cleanups to the placeholders hashtable. It moves the index calculation inside the hashtable. It avoids using the placeholder hashcode because it's the same hashcode as the dictionary hashcode. There are some asserts for this.
One of the find_class() functions is redundant to dictionary->find_class() so is removed.
Tested with tier1-6.
Progress
Issue
Reviewers
Download
$ git fetch https://git.openjdk.java.net/jdk pull/1789/head:pull/1789
$ git checkout pull/1789