X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fseqtran.lisp;h=3c7fa162ed7600d62a409e57a66e319cfbda20a6;hb=a7ec2f1af6881c93585d97fb2fdcdfd98006f217;hp=466496dbff1a1cceadf01a2f05c68fb7b67bc29b;hpb=1ab1dd29f2602c87d404492e588abdf5f6abfbf2;p=sbcl.git diff --git a/src/compiler/seqtran.lisp b/src/compiler/seqtran.lisp index 466496d..3c7fa16 100644 --- a/src/compiler/seqtran.lisp +++ b/src/compiler/seqtran.lisp @@ -776,7 +776,7 @@ (end1 (or end1 len1)) (end2 (or end2 len2)) (replace-len (min (- end1 start1) (- end2 start2)))) - ,(unless (policy node (= safety 0)) + ,(unless (policy node (= insert-array-bounds-checks 0)) `(progn (unless (<= 0 start1 end1 len1) (sequence-bounding-indices-bad-error seq1 start1 end1)) @@ -1122,6 +1122,7 @@ `(apply (lambda ,vars (declare (ignorable ,@vars)) + (declare (optimize (insert-array-bounds-checks 0))) (let* ((.length. (+ ,@lengths)) (.pos. 0) (.string. (make-string .length. :element-type ',element-type))) @@ -1237,9 +1238,7 @@ (if from-end (setf find element position index) - (unless find - (setf find element - position index))))))))))))) + (return (values element index))))))))))))) (def %find-position-if when) (def %find-position-if-not unless))