X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Farray.lisp;h=4f03dfc15b2d12e55fb52d25f7afd4ed1fab4562;hb=5dc28680e9cb2d598da02aed512aa49ea81fdade;hp=9bf63aa50f7ea88cc8cb6666d17228510e72c0ad;hpb=6973177fbe23d007655345c1fe2e0d6a5e397aa5;p=sbcl.git diff --git a/src/code/array.lisp b/src/code/array.lisp index 9bf63aa..4f03dfc 100644 --- a/src/code/array.lisp +++ b/src/code/array.lisp @@ -662,20 +662,20 @@ (setf (%array-fill-pointer array) (1+ fill-pointer)) fill-pointer)))) -(defun vector-push-extend (new-el array &optional - (extension (if (zerop (length array)) - 1 - (length array)))) +(defun vector-push-extend (new-element + vector + &optional + (extension (1+ (length vector)))) #!+sb-doc "Like Vector-Push except that if the fill pointer gets too large, the - Array is extended rather than Nil being returned." - (declare (vector array) (fixnum extension)) - (let ((fill-pointer (fill-pointer array))) + Vector is extended rather than Nil being returned." + (declare (vector vector) (fixnum extension)) + (let ((fill-pointer (fill-pointer vector))) (declare (fixnum fill-pointer)) - (when (= fill-pointer (%array-available-elements array)) - (adjust-array array (+ fill-pointer extension))) - (setf (aref array fill-pointer) new-el) - (setf (%array-fill-pointer array) (1+ fill-pointer)) + (when (= fill-pointer (%array-available-elements vector)) + (adjust-array vector (+ fill-pointer extension))) + (setf (aref vector fill-pointer) new-element) + (setf (%array-fill-pointer vector) (1+ fill-pointer)) fill-pointer)) (defun vector-pop (array)