X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fclass.lisp;h=b7ada1fc57e895ffc2b8372c431d5ebbe990b236;hb=da8cb4801a3ab35070f380e22aea3d260f9df8aa;hp=78a54327cb5f1691de65a0d24020243f82cf436a;hpb=8fee0ba99cd1b1038072bd3fc8f5d5338d80d2de;p=sbcl.git diff --git a/src/code/class.lisp b/src/code/class.lisp index 78a5432..b7ada1f 100644 --- a/src/code/class.lisp +++ b/src/code/class.lisp @@ -185,7 +185,16 @@ ;; This slot is known to the C runtime support code. (n-untagged-slots 0 :type index) ;; Definition location - (source-location nil)) + (source-location nil) + ;; True IFF the layout belongs to a standand-instance or a + ;; standard-funcallable-instance -- that is, true only if the layout + ;; is really a wrapper. + ;; + ;; FIXME: If we unify wrappers and layouts this can go away, since + ;; it is only used in SB-PCL::EMIT-FETCH-WRAPPERS, which can then + ;; use INSTANCE-SLOTS-LAYOUT instead (if there is are no slot + ;; layouts, there are no slots for it to pull.) + (for-std-class-p nil :type boolean :read-only t)) (def!method print-object ((layout layout) stream) (print-unreadable-object (layout stream :type t :identity t) @@ -813,7 +822,7 @@ NIL is returned when no such class exists." (defun update-object-layout-or-invalid (object layout) (if (typep (classoid-of object) 'standard-classoid) (sb!pcl::check-wrapper-validity object) - (%layout-invalid-error object layout))) + (sb!c::%layout-invalid-error object layout))) ;;; Simple methods for TYPE= and SUBTYPEP should never be called when ;;; the two classes are equal, since there are EQ checks in those