From 45fabc8f3fad8876627831708ec3c997d46ce4f8 Mon Sep 17 00:00:00 2001 From: Raymond Toy <toy.raymond@gmail.com> Date: Wed, 6 Mar 2013 00:27:44 -0800 Subject: [PATCH] Fix ticket:76 Missed one place in DO-UNARY-BYTE-BASH to adjust the call to END-MASK to use a bit offset instead of a byte offset. This affects anything that was using DO-UNARY-BYTE-BASH, including REPLACE. --- src/code/bit-bash.lisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/code/bit-bash.lisp b/src/code/bit-bash.lisp index a9bb688de..ba2706a3c 100644 --- a/src/code/bit-bash.lisp +++ b/src/code/bit-bash.lisp @@ -562,7 +562,7 @@ (unless (zerop dst-byte-offset) ;; We are only writing part of the first word, so mask off the ;; bits we want to preserve. - (let ((mask (end-mask (- dst-byte-offset))) + (let ((mask (end-mask (* vm:byte-bits (- dst-byte-offset)))) (orig (funcall dst-ref-fn dst dst-word-offset)) (value (funcall src-ref-fn src src-word-offset))) (declare (type unit mask orig value)) -- GitLab