Commit 50fee30
Ulrich Hecht
basic: CALL: fix yet another stack frame bug (with test)
We cannot modify the stack indices while evaluating arguments because
that would break references to local variables of the caller. That
means, however, that we also cannot push evaluated parameters on the
stack because they may be overwritten by functions called while evaluating
subsequent parameters.
We avoid this by storing parameters in temporary lists.
XXX: Probably not good for performance...1 parent f3040a7 commit 50fee30
3 files changed
Lines changed: 30 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5983 | 5983 | | |
5984 | 5984 | | |
5985 | 5985 | | |
| 5986 | + | |
| 5987 | + | |
| 5988 | + | |
5986 | 5989 | | |
5987 | 5990 | | |
5988 | 5991 | | |
5989 | 5992 | | |
5990 | 5993 | | |
5991 | 5994 | | |
5992 | 5995 | | |
5993 | | - | |
| 5996 | + | |
5994 | 5997 | | |
5995 | 5998 | | |
5996 | 5999 | | |
5997 | 6000 | | |
5998 | 6001 | | |
5999 | 6002 | | |
6000 | 6003 | | |
6001 | | - | |
| 6004 | + | |
6002 | 6005 | | |
6003 | 6006 | | |
6004 | 6007 | | |
| |||
6008 | 6011 | | |
6009 | 6012 | | |
6010 | 6013 | | |
| 6014 | + | |
| 6015 | + | |
| 6016 | + | |
| 6017 | + | |
| 6018 | + | |
| 6019 | + | |
| 6020 | + | |
6011 | 6021 | | |
6012 | 6022 | | |
6013 | 6023 | | |
| |||
0 commit comments