-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Avoid infinite recursion in implicit conversion #17536
Conversation
The check `klass == ctxt->fCurScope` in ConvertImplicit was always returning false due to a bad construction of the `ctxt` variable of type `CPyCppyy::CallContext`. In particular, the `fCurScope` of the context is taken as the `fScope` data member of the instance converter. This value is usually created at construction time, for example in the `STLStringViewConverter` constructor, by calling `Cppyy::GetScope`. The `GetScope` implementation of ROOT's clingwrapper was outdated w.r.t. the cppyy-backend implementation. This commit aligns the two implementations, thus fixing issues such as the one reported at root-project#17497.
Test Results 18 files 18 suites 3d 22h 25m 6s ⏱️ Results for commit 053d1bc. ♻️ This comment has been updated with latest results. |
So the failure on Windows is due to
|
@bellenot thank you for your investigation! I will then disable this test on Windows pending a fix to a much larger issue on the platform. |
38e81ae
to
50515b0
Compare
Disabled on MacOS ARM and Windows because LLVM JIT fails to catch exceptions.
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! Good that you fixed the issue, and reducing the diff is always welcome 👍
Fixes #17497
@guitargeek These changes, taken from https://github.com/wlav/cppyy-backend/blob/master/clingwrapper/src/clingwrapper.cxx , fix the reproducer at the linked issue. Let's see what the rest of the CI says. Then we may want to discuss how to incorporate these changes into the repository.