From 92723b21c6fcc2ed4ea05310e66878988de25e43 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 21 Jul 2006 12:34:35 +0000 Subject: [PATCH] fix JIT bug in checking last arg for string-set svn: r3777 --- collects/tests/mzscheme/optimize.ss | 2 ++ src/mzscheme/src/jit.c | 1 + 2 files changed, 3 insertions(+) diff --git a/collects/tests/mzscheme/optimize.ss b/collects/tests/mzscheme/optimize.ss index 983f35ef78..8873ea658a 100644 --- a/collects/tests/mzscheme/optimize.ss +++ b/collects/tests/mzscheme/optimize.ss @@ -229,6 +229,8 @@ (let ([v (make-X 3 def-val)]) (check-error-message set-name (eval `(lambda (x) (,set-name ,v -1 ,set-val)))) (check-error-message set-name (eval `(lambda (x) (,set-name ,v 3 ,set-val)))) + (unless (integer? set-val) + (check-error-message set-name (eval `(lambda (x) (,set-name ,v 0 12))))) (for-each (lambda (i) (tri-exact (void) set-name (lambda () v) i set-val (lambda () diff --git a/src/mzscheme/src/jit.c b/src/mzscheme/src/jit.c index 074fa962c9..979175abf5 100644 --- a/src/mzscheme/src/jit.c +++ b/src/mzscheme/src/jit.c @@ -4405,6 +4405,7 @@ static int do_generate_common(mz_jit_state *jitter, void *_data) jit_stxr_p(JIT_V1, JIT_R0, JIT_R2); break; case 1: + (void)jit_bmsi_l(reffail, JIT_R2, 0x1); jit_ldxi_s(JIT_R2, JIT_R2, &((Scheme_Object *)0x0)->type); (void)jit_bnei_i(reffail, JIT_R2, scheme_char_type); jit_ldr_p(JIT_R2, JIT_RUNSTACK);