X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fclass.lisp;h=0d19c7caddf3a2b15bdcd3e798c31ed1edc7f0b0;hb=a0a413499415738d23cc40baa44e9c404af54a94;hp=a0e26d9822026f7538d855a7d75d88bcbdc04f7f;hpb=6fcce44c2d3c3b3b4d60a79be8b5efb2d9620f1b;p=sbcl.git diff --git a/src/code/class.lisp b/src/code/class.lisp index a0e26d9..0d19c7c 100644 --- a/src/code/class.lisp +++ b/src/code/class.lisp @@ -211,7 +211,7 @@ (layout-proper-name layout) (layout-invalid layout)))) -(eval-when (:compile-toplevel :load-toplevel :execute) +(eval-when (#-sb-xc :compile-toplevel :load-toplevel :execute) (defun layout-proper-name (layout) (classoid-proper-name (layout-classoid layout)))) @@ -521,7 +521,11 @@ (when (> depth max-depth) (setf max-depth depth)))) (let* ((new-length (max (1+ max-depth) length)) - (inherits (make-array new-length))) + ;; KLUDGE: 0 here is the "uninitialized" element. We need + ;; to specify it explicitly for portability purposes, as + ;; elements can be read before being set [ see below, "(EQL + ;; OLD-LAYOUT 0)" ]. -- CSR, 2002-04-20 + (inherits (make-array new-length :initial-element 0))) (dotimes (i length) (let* ((layout (svref layouts i)) (depth (layout-depthoid layout)))