- Notifications
You must be signed in to change notification settings - Fork765
2574 StackOverflow Exception On Super Method Call Fix#2628
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
rmadsen-ks wants to merge1 commit intopythonnet:masterChoose a base branch fromrmadsen-ks:2574-StackOverFlowExceptionOnSuperMethodCallFix
base:master
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Open
2574 StackOverflow Exception On Super Method Call Fix#2628
rmadsen-ks wants to merge1 commit intopythonnet:masterfromrmadsen-ks:2574-StackOverFlowExceptionOnSuperMethodCallFix
+82 −21
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
…ning a method and some not.Also fixed an issue causing the finalizer to be called twice.Added unit tests to verify the fix.
3ddd76a
tobf389cf
CompareThanks a lot for this. I will try my best to get the CI working again on the weekend and will "enqueue" this one for merging. |
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading.Please reload this page.
Update: Does not actuallyfix#2574, but a similar problem. I'll provide a fix for 2574 as well.
This fixed an issue with a StackOverflow exception being generated when a virtual method is being called, but a class in the middle of the inheritance tree does not override the method.
This happens because the CallVirtual method calls the method on the python object if the wrapper got generated, causing everything to be evaluated again from the top. Doing it this way, causes the the python method only to get invoked if there is an implementation on the class, which can then correctly call
super().Method()
.For the finalizer fix, we now skip generating the call to PyFinalize if the base class is already a python class, because if that is the case the finalize method has already been added.
Additionally it simplifies how the generated code for virtual methods look. Now, a virtual wrapper method is not automatically generated. Only if the method is actually being overwritten by the class it will prompt the generation of a virtual method wrapper.
Does this close any currently open issues?
Thiscloses#2574,#2627
Any other comments?
...
Checklist
Check all those that are applicable and complete.
AUTHORS
CHANGELOG