fix JIT bug in checking last arg for string-set

svn: r3777
This commit is contained in:
Matthew Flatt 2006-07-21 12:34:35 +00:00
parent 86f569ceb2
commit 92723b21c6
2 changed files with 3 additions and 0 deletions

View File

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

View File

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