X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Froom.lisp;h=ea2f30990eb79181ac03cd87b2e727b6c562b664;hb=fb03344c5e8388e0b16512f1cb662d8cf5d13972;hp=c957c8d0c5edd3240c93d01528c9722b9b622f3f;hpb=70769503c505c22bddef3bc7885b91b9d503607f;p=sbcl.git diff --git a/src/code/room.lisp b/src/code/room.lisp index c957c8d..ea2f309 100644 --- a/src/code/room.lisp +++ b/src/code/room.lisp @@ -208,12 +208,12 @@ ;;; MAP-ALLOCATED-OBJECTS #!+gencgc (progn - (define-alien-type nil + (define-alien-type (struct page) (struct page - (flags unsigned-int) - (gen int) - (bytes-used int) - (start long))) + (start long) + (bytes-used (unsigned 16)) + (flags (unsigned 8)) + (gen (signed 8)))) (declaim (inline find-page-index)) (define-alien-routine "find_page_index" long (index long)) (define-alien-variable "page_table" @@ -233,7 +233,7 @@ (declare (type system-area-pointer start end)) (declare (optimize (speed 3) (safety 0))) (let ((current start) - (skip-tests-until-addr 0)) + #!+gencgc (skip-tests-until-addr 0)) (labels ((maybe-finish-mapping () (unless (sap< current end) (aver (sap= current end)) @@ -265,7 +265,7 @@ ;; bitfields? (let ((alloc-flag (ldb (byte 3 2) (slot page 'flags))) - (bytes-used (slot page 'bytes-used))) + (bytes-used (slot page 'bytes-used))) ;; If the page is not free and the current ;; pointer is still below the allocation offset ;; of the page