diff --git a/collects/tests/racket/optimize.rktl b/collects/tests/racket/optimize.rktl index 151edc2e50..f893c33778 100644 --- a/collects/tests/racket/optimize.rktl +++ b/collects/tests/racket/optimize.rktl @@ -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)))) diff --git a/src/racket/src/jitcommon.c b/src/racket/src/jitcommon.c index 472a5116b7..9b3d9e51a1 100644 --- a/src/racket/src/jitcommon.c +++ b/src/racket/src/jitcommon.c @@ -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)