(lp#746132)
* bug fix: don't warn on a interpreted->compiled function redefinition
from the same location. (patch by Douglas Katzman, lp#1042405)
+ * bug fix: Create vectors of proper internal length when reading literal
+ vectors from FASLs. (Reported by Jan Moringen)
changes in sbcl-1.1.12 relative to sbcl-1.1.11:
* enhancement: Add sb-bsd-sockets:socket-shutdown, for calling
res))
(defglobal **saetp-bits-per-length**
- (let ((array (make-array 255 :element-type '(unsigned-byte 8)
- :initial-element 255)))
+ (let ((array (make-array (1+ sb!vm:widetag-mask)
+ :element-type '(unsigned-byte 8)
+ :initial-element 255)))
(loop for saetp across sb!vm:*specialized-array-element-type-properties*
do
(setf (aref array (sb!vm:saetp-typecode saetp))
(sb!vm:saetp-n-bits saetp)))
array)
"255 means bad entry.")
-(declaim (type (simple-array (unsigned-byte 8) (255))
+(declaim (type (simple-array (unsigned-byte 8) (#.(1+ sb!vm:widetag-mask)))
**saetp-bits-per-length**))
(define-fop (fop-spec-vector 43)
(let* ((length (read-word-arg))
(widetag (read-byte-arg))
(bits-per-length (aref **saetp-bits-per-length** widetag))
- (bytes (progn
- (aver (< bits-per-length 255))
- (ceiling (* length bits-per-length) sb!vm:n-byte-bits)))
- (vector (allocate-vector widetag length (* bytes sb!vm:n-word-bytes))))
- (declare (type index length))
+ (bits (progn (aver (< bits-per-length 255))
+ (* length bits-per-length)))
+ (bytes (ceiling bits sb!vm:n-byte-bits))
+ (words (ceiling bytes sb!vm:n-word-bytes))
+ (vector (allocate-vector widetag length words)))
+ (declare (type index length bytes words)
+ (type word bits))
(read-n-bytes *fasl-input-stream* vector 0 bytes)
vector))
(dump-fop 'fop-spec-vector file)
(dump-word length file)
(dump-byte widetag file))
- (dump-raw-bytes vector (ceiling (* length bits-per-length) sb!vm:n-byte-bits) file)))
+ (dump-raw-bytes vector
+ (ceiling (* length bits-per-length) sb!vm:n-byte-bits)
+ file)))
\f
;;; Dump characters and string-ish things.