-
Notifications
You must be signed in to change notification settings - Fork 729
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
Clarity: replace storeValidationRecordIfNecessary #4181
Conversation
- Avoid recursion when adding records - Remove addThisRecord flag - Avoid duplicated logic for array types in almost all class records - Avoid unnecessary logic for handling primitive types - Deduplicate common tests (sym != NULL, inHeuristicRegion()) Signed-off-by: Devin Papineau <[email protected]>
|
||
for (auto it = _symbolValidationRecords.begin(); it != _symbolValidationRecords.end(); it++) | ||
SVM_ASSERT(!_fej9->isClassArray(component), "expected base component type"); |
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.
👍
return true; | ||
|
||
int32_t arrayDims = 0; | ||
superClass = getBaseComponentClass(superClass, arrayDims); |
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.
For my own clarification, it is impossible for a superclass of some class to be an array class?
EDIT: nvm, I forgot that addClassRecord
will generate successive ComponentClassFromArrayClassRecord
records.
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.
It took some time, but I'm convinced everything is correct. There were a few places I initially wasn't sure made sense, but then that's mainly because I needed to forget the old approach of finding the leaf component class, pretending the record was for that leaf class, and generating consecutive arrayOfs (and doing the inverse of that during the validation phase).
I think the semantics are far clearer now. Thanks for also updating the documentation.
Jenkins test sanity xlinux,win,plinux jdk8,jdk11 |
Jenkins test sanity xlinux jdk8 |
the xlinux jdk8 build failed because of
xlinux jdk11 build failed because of
|
Jenkins test sanity xlinux jdk8,jdk11 |
If that's true then @jdmpapin could you rebase and I'll launch the PR builds again. |
The failures were two occurrences of this:
The same issue has appeared elsewhere. It might be #4166 (where I found that link), but regardless it's happening without the changes from this PR |
I'm happy to merge now we know the error is not caused by this PR. |
addThisRecord
flagsym != NULL
,inHeuristicRegion()
)