;;; Dump an object of any type by dispatching to the correct
;;; type-specific dumping function. We pick off immediate objects,
-;;; symbols and and magic lists here. Other objects are handled by
+;;; symbols and magic lists here. Other objects are handled by
;;; DUMP-NON-IMMEDIATE-OBJECT.
;;;
;;; This is the function used for recursive calls to the fasl dumper.
((simple-array nil (*))
(dump-unsigned-vector 0 0))
(simple-bit-vector
- (dump-unsigned-vector 1 (ceiling len 8)))
+ (dump-unsigned-vector 1 (ceiling len 8))) ; bits to bytes
;; KLUDGE: This isn't the best way of expressing that the host
;; may not have specializations for (unsigned-byte 2) and
;; (unsigned-byte 4), which means that these types are
;; CSR, 2002-05-07
#-sb-xc-host
((simple-array (unsigned-byte 2) (*))
- (dump-unsigned-vector 2 (ceiling len 8)))
+ (dump-unsigned-vector 2 (ceiling (ash len 1) 8))) ; bits to bytes
#-sb-xc-host
((simple-array (unsigned-byte 4) (*))
- (dump-unsigned-vector 4 (ceiling len 8)))
+ (dump-unsigned-vector 4 (ceiling (ash len 2) 8))) ; bits to bytes
#-sb-xc-host
((simple-array (unsigned-byte 7) (*))
(dump-unsigned-vector 7 len))
(dump-object name fasl-output))
(dump-fop 'fop-maybe-cold-load fasl-output)
(dump-fop 'fop-assembler-fixup fasl-output))
- (:foreign
+ ((:foreign :foreign-dataref)
(aver (stringp name))
- (dump-fop 'fop-foreign-fixup fasl-output)
+ (ecase flavor
+ (:foreign
+ (dump-fop 'fop-foreign-fixup fasl-output))
+ #!+linkage-table
+ (:foreign-dataref
+ (dump-fop 'fop-foreign-dataref-fixup fasl-output)))
(let ((len (length name)))
(aver (< len 256)) ; (limit imposed by fop definition)
(dump-byte len fasl-output)