X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Froom.lisp;h=df09fbef15f2d499868c0be92ebd5b9413feb28a;hb=2db3b6b4cb740d5b6512459c223859f747807b09;hp=d549fa7378af68372dc7793a8657a0b1907176df;hpb=6f1507bc47503d08288c72426b4e42011d909725;p=sbcl.git diff --git a/src/code/room.lisp b/src/code/room.lisp index d549fa7..df09fbe 100644 --- a/src/code/room.lisp +++ b/src/code/room.lisp @@ -80,18 +80,27 @@ (simple-array-double-float-widetag . 3) (simple-array-complex-single-float-widetag . 3) (simple-array-complex-double-float-widetag . 4))) - (let ((name (car stuff)) - (size (cdr stuff))) + (let* ((name (car stuff)) + (size (cdr stuff)) + (sname (string name))) (setf (svref *meta-room-info* (symbol-value name)) - (make-room-info :name name + (make-room-info :name (intern (subseq sname + 0 + (mismatch sname "-WIDETAG" + :from-end t))) :kind :vector :length size)))) (setf (svref *meta-room-info* simple-string-widetag) - (make-room-info :name 'simple-string-widetag + (make-room-info :name 'simple-string :kind :string :length 0)) +(setf (svref *meta-room-info* simple-array-nil-widetag) + (make-room-info :name 'simple-array-nil + :kind :fixed + :length 2)) + (setf (svref *meta-room-info* code-header-widetag) (make-room-info :name 'code :kind :code)) @@ -211,7 +220,8 @@ (:fixed (aver (or (eql (room-info-length info) (1+ (get-header-data obj))) - (floatp obj))) + (floatp obj) + (simple-array-nil-p obj))) (round-to-dualword (* (room-info-length info) n-word-bytes))) ((:vector :string)