Fix invalid return address 0 in GDScript #71098
Closed
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.
Fixes #70936, created by 0c15844.
In the past, all method returns would have a temporary return address assigned to it, even if its return type is null. Now, the return address can be empty (
Address:NIL
, which has anaddress
of 0), but the bytecode still attempts to send the returned value to this address.Address:NIL
is the default state of the Address class when using an empty constructor, so sending the returned value here probably messes some stuff up for things that useAddress()
to represent an empty address (Such as the unary operator).I'm not too knowledgable on the inner workings of the VM/Compiler, so this may not be the correct fix. The bug is gone and all tests pass, so I assume this was the problem...
If this is not the correct fix, please let me know 👍