From b4e3030a0d0be48f3c06bbb590da0db953e2f7dd Mon Sep 17 00:00:00 2001 From: Gustavo Massaccesi Date: Mon, 19 Nov 2018 14:57:06 -0300 Subject: [PATCH] rumble: fix some type checks in bytes.ss --- racket/src/cs/rumble/bytes.ss | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/racket/src/cs/rumble/bytes.ss b/racket/src/cs/rumble/bytes.ss index fa6cd08e27..8b88c21d31 100644 --- a/racket/src/cs/rumble/bytes.ss +++ b/racket/src/cs/rumble/bytes.ss @@ -81,12 +81,14 @@ [(a b . l) (check who bytes? a) (check who bytes? b) - (and (bytevector=? a b) + (for-each (lambda (arg) + (check who byte? arg)) + l) + (and (do-name a b) (let loop ([a b] [l l]) (cond [(null? l) #t] [else (let ([b (car l)]) - (check who bytes? b) (and (do-name a b) (loop b (cdr l))))])))]))) @@ -145,14 +147,17 @@ c))] [(a) (check who bytes? a) - a] + (#2%bytevector-copy a)] [() #vu8()] [args (let* ([size (let loop ([args args]) (cond [(null? args) 0] - [else (+ (bytevector-length (car args)) - (loop (cdr args)))]))] + [else + (let ([arg (car args)]) + (check who bytes? arg) + (+ (bytevector-length arg) + (loop (cdr args))))]))] [c (make-bytevector size)]) (let loop ([args args] [pos 0]) (cond