summaryrefslogtreecommitdiff
path: root/libguile/vm-i-system.c
diff options
context:
space:
mode:
authorDaniel Kraft <d@domob.eu>2009-08-04 09:37:50 +0200
committerDaniel Kraft <d@domob.eu>2009-08-04 09:37:50 +0200
commit157ffbd797b466d80c2a1002a1d40d9b6a89d102 (patch)
treee9575c49ce0bbece1b26bffff183d9b1f9923448 /libguile/vm-i-system.c
parent1b1195f29bd73885bcd9fd77e9b2dae0dfa003c0 (diff)
parenta876e7dcea78e770bedba40017fbb225cf88bff5 (diff)
downloadguile-157ffbd797b466d80c2a1002a1d40d9b6a89d102.tar.gz
Merge branch 'master' of git://git.savannah.gnu.org/guile into elisp
Diffstat (limited to 'libguile/vm-i-system.c')
-rw-r--r--libguile/vm-i-system.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
index 5a4809db4..ad0ec547e 100644
--- a/libguile/vm-i-system.c
+++ b/libguile/vm-i-system.c
@@ -177,7 +177,13 @@ VM_DEFINE_INSTRUCTION (15, make_uint64, "make-uint64", 8, 0, 1)
VM_DEFINE_INSTRUCTION (16, make_char8, "make-char8", 1, 0, 1)
{
- PUSH (SCM_MAKE_CHAR (FETCH ()));
+ scm_t_uint8 v = 0;
+ v = FETCH ();
+
+ PUSH (SCM_MAKE_CHAR (v));
+ /* Don't simplify this to PUSH (SCM_MAKE_CHAR (FETCH ())). The
+ contents of SCM_MAKE_CHAR may be evaluated more than once,
+ resulting in a double fetch. */
NEXT;
}