From: Christophe R. <cr...@us...> - 2002-06-26 14:11:32
|
Update of /cvsroot/sbcl/sbcl/src/code In directory usw-pr-cvs1:/tmp/cvs-serv19034/src/code Modified Files: array.lisp Log Message: 0.7.5.2: Minor array performance tweak ... return the known-boxed value from the full-call HAIRY-DATA-VECTOR-SET Index: array.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/array.lisp,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- array.lisp 25 Jun 2002 15:57:14 -0000 1.26 +++ array.lisp 26 Jun 2002 14:11:27 -0000 1.27 @@ -330,7 +330,7 @@ (defun hairy-data-vector-set (array index new-value) (with-array-data ((vector array) (index index) (end)) - (declare (ignore end) (optimize)) + (declare (ignore end)) (etypecase vector . #.(mapcar (lambda (type) (let ((atype `(simple-array ,type (*)))) @@ -338,7 +338,13 @@ (data-vector-set (the ,atype vector) index (the ,type - new-value))))) + new-value)) + ;; For specialized arrays, the return + ;; from data-vector-set would have to + ;; be reboxed to be a (Lisp) return + ;; value; instead, we use the + ;; already-boxed value as the return. + new-value))) *specialized-array-element-types*)))) (defun %array-row-major-index (array subscripts |