X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Froom.lisp;h=3877c297ab6757cbdfe024ccd5f136c45acf5a0d;hb=beddcfe1ea23d2cfdddde2fa7cde6436799715a2;hp=ec6888e608e7fa3f75ce9c95ec91f2c6dd3185d8;hpb=d077b28e3d745afe9e4593cac1851f9c62c6f16f;p=sbcl.git diff --git a/src/code/room.lisp b/src/code/room.lisp index ec6888e..3877c29 100644 --- a/src/code/room.lisp +++ b/src/code/room.lisp @@ -217,7 +217,7 @@ ;; will be a short. On platforms with larger ones, it'll ;; be an int. (bytes-used (unsigned - #.(if (typep sb!vm:gencgc-page-bytes + #.(if (typep sb!vm:gencgc-card-bytes '(unsigned-byte 16)) 16 32))) @@ -265,7 +265,7 @@ (maybe-skip-page () #!+gencgc (when (eq space :dynamic) - (loop with page-mask = #.(1- sb!vm:gencgc-page-bytes) + (loop with page-mask = #.(1- sb!vm:gencgc-card-bytes) for addr of-type sb!vm:word = (sap-int current) while (>= addr skip-tests-until-addr) do @@ -286,8 +286,8 @@ ;; pointer is still below the allocation offset ;; of the page (when (and (not (zerop alloc-flag)) - (<= (logand page-mask addr) - bytes-used)) + (< (logand page-mask addr) + bytes-used)) ;; Don't bother testing again until we ;; get past that allocation offset (setf skip-tests-until-addr @@ -297,7 +297,7 @@ (return-from maybe-skip-page)) ;; Move CURRENT to start of next page. (setf current (int-sap (+ (logandc2 addr page-mask) - sb!vm:gencgc-page-bytes))) + sb!vm:gencgc-card-bytes))) (maybe-finish-mapping)))))) (maybe-map (obj obj-tag n-obj-bytes &optional (ok t)) (let ((next (typecase n-obj-bytes