mirror of
https://github.com/ParkerTenBroeck/coroutines.git
synced 2026-06-07 05:08:51 -04:00
fixed a number of bugs related to stack frame interpretation
This commit is contained in:
parent
0ad439c4d6
commit
d4771ef4e0
9 changed files with 52 additions and 52 deletions
|
|
@ -45,11 +45,12 @@ public class FutureSMBuilder extends StateMachineBuilder {
|
|||
cob.ifThenElse(bcb -> {
|
||||
bcb.swap().aload(0).swap().putfield(smb.CD_this, AWAITING_FIELD_NAME, CD_Future);
|
||||
|
||||
|
||||
var sst = new SavedStateTracker();
|
||||
bcb.storeLocal(TypeKind.REFERENCE, frame.locals().length+2);
|
||||
frame.save_locals(smb, cob, sst,2);
|
||||
bcb.storeLocal(TypeKind.REFERENCE, 2);
|
||||
frame.save_stack(smb, cob, sst,1);
|
||||
bcb.loadLocal(TypeKind.REFERENCE, 2);
|
||||
bcb.loadLocal(TypeKind.REFERENCE, frame.locals().length+2);
|
||||
bcb.areturn().labelBinding(restore_label);
|
||||
sst.restore_all(smb, cob);
|
||||
|
||||
|
|
@ -118,7 +119,7 @@ public class FutureSMBuilder extends StateMachineBuilder {
|
|||
|
||||
@Override
|
||||
protected String uniqueName() {
|
||||
return "Fut"+super.uniqueName();
|
||||
return "Fut";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue