X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Farray.lisp;h=817bdb783c80e0e68733a28ea48910598024f6ff;hb=ee90e535c985f697c71d839083aed16710f846fd;hp=50f730a43aa87fe3faf9113545a833388543c80c;hpb=562e48a2bd3467121e24214110e535c841fbb622;p=sbcl.git diff --git a/src/code/array.lisp b/src/code/array.lisp index 50f730a..817bdb7 100644 --- a/src/code/array.lisp +++ b/src/code/array.lisp @@ -56,19 +56,6 @@ (values vector index)) (values array index))) -(declaim (inline simple-vector-compare-and-swap)) -(defun simple-vector-compare-and-swap (vector index old new) - #!+(or x86 x86-64) - (%simple-vector-compare-and-swap vector - (%check-bound vector (length vector) index) - old - new) - #!-(or x86 x86-64) - (let ((n-old (svref vector index))) - (when (eq old n-old) - (setf (svref vector index) new)) - n-old)) - ;;; It'd waste space to expand copies of error handling in every ;;; inline %WITH-ARRAY-DATA, so we have them call this function ;;; instead. This is just a wrapper which is known never to return. @@ -482,6 +469,9 @@ of specialized arrays is supported." (defun data-vector-ref (array index) (hairy-data-vector-ref array index)) +(defun data-vector-ref-with-offset (array index offset) + (hairy-data-vector-ref array (+ index offset))) + ;;; SUBSCRIPTS has a dynamic-extent list structure and is destroyed (defun %array-row-major-index (array subscripts &optional (invalid-index-error-p t))