- ;;
- ;; FIXME: The return values here don't seem sane, and
- ;; bounds-checks are elided!
- `(let ((data (truly-the (simple-array ,element-type (*))
- (%array-data-vector array))))
- (values data 0 (length data) 0))
+ (if check-bounds
+ `(let* ((data (truly-the (simple-array ,element-type (*))
+ (%array-data-vector array)))
+ (len (length data))
+ (real-end (or end len)))
+ (unless (<= 0 start data-end lend)
+ (sequence-bounding-indices-bad-error array start end))
+ (values data 0 real-end 0))
+ `(let ((data (truly-the (simple-array ,element-type (*))
+ (%array-data-vector array))))
+ (values data 0 (or end (length data)) 0)))