diff options
author | Andy Wingo <wingo@pobox.com> | 2013-10-23 15:06:24 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-10-23 19:28:26 +0200 |
commit | 8cff7f54dcdaff5a87dce5d419b15a21d5884f48 (patch) | |
tree | c430c53c5076fb1aabd34edaceccbe53afddbb44 /libguile/vm-engine.c | |
parent | a4b64fa2465e02d623982d927fbf3eea7123679c (diff) | |
download | guile-8cff7f54dcdaff5a87dce5d419b15a21d5884f48.tar.gz |
RTL VM: Fix LOCAL_REF, LOCAL_SET for unsigned indices
* libguile/vm-engine.c (LOCAL_REF, LOCAL_SET): Fix so to work with
unsigned 0. Previously subtracting 1 was making the index wrap
around.
Diffstat (limited to 'libguile/vm-engine.c')
-rw-r--r-- | libguile/vm-engine.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c index e2f8745eb..cf359c969 100644 --- a/libguile/vm-engine.c +++ b/libguile/vm-engine.c @@ -628,8 +628,8 @@ VM_NAME (SCM vm, SCM program, SCM *argv, int nargs) case opcode: #endif -#define LOCAL_REF(i) SCM_FRAME_VARIABLE (fp, (i) - 1) -#define LOCAL_SET(i,o) SCM_FRAME_VARIABLE (fp, (i) - 1) = o +#define LOCAL_REF(i) SCM_FRAME_VARIABLE ((fp - 1), i) +#define LOCAL_SET(i,o) SCM_FRAME_VARIABLE ((fp - 1), i) = o #define VARIABLE_REF(v) SCM_VARIABLE_REF (v) #define VARIABLE_SET(v,o) SCM_VARIABLE_SET (v, o) |