find_primitive relies on symbol names (which were formerly `strings',
i.e. `vector-8b' or TC_CHARACTER_STRING, and are now `bytevectors')
to be null-terminated.
Rather than try to figure out which ones are primitive names and
which ones are not, we'll just null-terminate all of them.
We can undo this if we change find_primitive. (We need to change the
compile-time tool findprim.c anyway because its strcmp_ci misuses
islower/toupper.)
\f
(define (fasdump-bytevector-n-words format bytevector)
(let ((n-bytes (bytevector-length bytevector)))
- (quotient (+ n-bytes (- (format.bytes-per-word format) 1))
+ ;; Add a terminating null byte. Bytevectors don't actually require
+ ;; this in general -- but the bytevectors that are symbol names do.
+ ;; This is pretty kludgey.
+ (quotient (+ 1 n-bytes (- (format.bytes-per-word format) 1))
(format.bytes-per-word format))))
(define (fasdump-bytevector state bytevector)