Skip to content
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

Add assert for _FutureListener.handleValue receiver stack position #44657

Open
ghost opened this issue Jan 13, 2021 · 0 comments
Open

Add assert for _FutureListener.handleValue receiver stack position #44657

ghost opened this issue Jan 13, 2021 · 0 comments
Labels
area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends. vm-technical-debt This label tries to capture all the technical debt that we have accumulated in the Dart VM

Comments

@ghost
Copy link

ghost commented Jan 13, 2021

8f2c47f relies on the assumption that the receiver to _FutureListener.handleValue is at a fixed offset in the calling frame, but this assumption is not tested or guaranteed.

@mraleph suggested:

[add] checks when generating code for the handleValue itself.
e.g. [...] add a check in linearscan.cc that ParameterInstr for this is allocated into the right place on the stack when compiling handleValue body.
And similar check into LoadLocalInstr for unoptimized compilation.

@ghost ghost added area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends. vm-technical-debt This label tries to capture all the technical debt that we have accumulated in the Dart VM labels Jan 13, 2021
@ghost ghost self-assigned this Jan 13, 2021
@ghost ghost removed their assignment May 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends. vm-technical-debt This label tries to capture all the technical debt that we have accumulated in the Dart VM
Projects
None yet
Development

No branches or pull requests

0 participants