diff --git a/collects/mzlib/inflate.ss b/collects/mzlib/inflate.ss index 4580311..0a80975 100644 --- a/collects/mzlib/inflate.ss +++ b/collects/mzlib/inflate.ss @@ -246,12 +246,14 @@ (define (NEEDBITS n) (when (< bk n) (let ([v (peek-byte input-port peeked)]) - (unless (eof-object? v) - (set! bb (+ bb (arithmetic-shift v bk))) - ;; assume that lookahead never needs more than 32 bytes: - (if (peeked . < . 32) - (set! peeked (add1 peeked)) - (read-byte input-port)))) + (if (eof-object? v) + (error 'inflate "unexpected end of file") + (begin + (set! bb (+ bb (arithmetic-shift v bk))) + ;; assume that lookahead never needs more than 32 bytes: + (if (peeked . < . 32) + (set! peeked (add1 peeked)) + (read-byte input-port))))) (set! bk (+ bk 8)) (NEEDBITS n))) (define (DUMPBITS n)