1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 04:40:29 +02:00

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.
This commit is contained in:
Andy Wingo 2013-10-23 15:06:24 +02:00
parent a4b64fa246
commit 8cff7f54dc

View file

@ -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)