another fix for `vector-{ref,set!}' on chaperone/impersonator

--- fixes a81917a2692; drop this commit if that one is dropped
This commit is contained in:
Matthew Flatt 2011-07-05 06:29:32 -06:00
parent ca2dd17dcb
commit 1daa2649f0
2 changed files with 8 additions and 3 deletions

View File

@ -636,7 +636,14 @@
(test-setter make-bytes 0 7 'bytes-set! bytes-set! bytes-ref #f)
(test-setter make-string #\a #\7 'string-set! string-set! string-ref #f)
(test-setter make-flvector 1.0 7.0 'flvector-set! flvector-set! flvector-ref #f)
(test-setter make-fxvector 1 7 'fxvector-set! fxvector-set! fxvector-ref #f))
(test-setter make-fxvector 1 7 'fxvector-set! fxvector-set! fxvector-ref #f)
(let ([chap-vec (lambda (vec)
(chaperone-vector vec (lambda (vec i val) val) (lambda (vec i val) val)))])
(test-setter (lambda (n v) (chap-vec (make-vector n v)))
#f 7 'vector-set! vector-set! vector-ref #t)
(test-setter (lambda (n v) (chap-vec (chap-vec (make-vector n v))))
#f 7 'vector-set! vector-set! vector-ref #t)))
(err/rt-test (apply (list-ref (list (lambda (v) (vector-set! v 0 #t))) (random 1))
(list (vector-immutable 1 2 3))))

View File

@ -1121,8 +1121,6 @@ static int common3(mz_jit_state *jitter, void *_data)
}
CHECK_LIMIT();
/* Might return, if arg was chaperone */
if (ii == -1)
jit_addi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(2));
jit_addi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(2));
JIT_UPDATE_THREAD_RSPTR();
if (!iii)