-
Notifications
You must be signed in to change notification settings - Fork 70
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
Metadata 27+ Xref crash fix #110
base: master
Are you sure you want to change the base?
Conversation
I think the pointers where just polluted so I couldn't just null check, but I'm not sure anymore |
This is still too brittle... I'm getting crashes with some functions again. |
Did anyone get a chance to look into this PR or the issue at hand? |
Any updates on this? @HookedBehemoth |
Works but the maintainers here don't seem to be interested in having this upstream |
In some version, I am getting Op0Kind = Register |
Do you actually know what this patch is for or do you just use this issue to report a bug that has nothing to do with this? |
I am not entirely sure if is related. But, using this PR or the original with Metadata 29, I get Argument out of range on certain xref. The op0kind is register. I supposed the address decoder has some issue. |
So it probably has nothing to do with this patch? |
On previous versions, one call per method instantiated all globals used. Now there is one call per global. Instead of a method-handle, the pointers are passed directly. With method inlining, multiple of these blocks are added into one method TODO: Only one of the flags is set and we might check the wrong one
5db6bc6
to
dd30555
Compare
On previous versions, one call per method instantiated all globals used.
Now there is one call per global. Instead of a method-handle, the pointers are passed directly.
With method inlining, multiple of these blocks are added into one method
This bug would manifest as hard crashes during xref on methods that weren't fully initialized by the runtime.
TODO: Only one of the flags is set and we might check the wrong one
I got distracted and never properly implemented this. I hope these patches can help you.