0.pre7.14.flaky4.5:
[sbcl.git] / src / compiler / array-tran.lisp
index 782368c..e1fddb3 100644 (file)
                                   (element-type '*)
                                   unsafe?
                                   fail-inline?)
+  (/show "in %WITH-ARRAY-DATA-MACRO, yes.." array start end)
   (let ((size (gensym "SIZE-"))
+       (defaulted-end (gensym "DEFAULTED-END-"))
        (data (gensym "DATA-"))
        (cumulative-offset (gensym "CUMULATIVE-OFFSET-")))
     `(let* ((,size (array-total-size ,array))
-           (,end (cond (,end
-                        (unless (or ,unsafe? (<= ,end ,size))
-                          ,(if fail-inline?
-                               `(error "End ~D is greater than total size ~D."
-                                       ,end ,size)
-                               `(failed-%with-array-data ,array ,start ,end)))
-                        ,end)
-                       (t ,size))))
-       (unless (or ,unsafe? (<= ,start ,end))
+           (,defaulted-end
+             (cond (,end
+                    (unless (or ,unsafe? (<= ,end ,size))
+                      ,(if fail-inline?
+                           `(error "End ~D is greater than total size ~D."
+                                   ,end ,size)
+                           `(failed-%with-array-data ,array ,start ,end)))
+                    ,end)
+                   (t ,size))))
+       (unless (or ,unsafe? (<= ,start ,defaulted-end))
         ,(if fail-inline?
-             `(error "Start ~D is greater than end ~D." ,start ,end)
+             `(error "Start ~D is greater than end ~D." ,start ,defaulted-end)
              `(failed-%with-array-data ,array ,start ,end)))
        (do ((,data ,array (%array-data-vector ,data))
            (,cumulative-offset 0
           ((not (array-header-p ,data))
            (values (the (simple-array ,element-type 1) ,data)
                    (the index (+ ,cumulative-offset ,start))
-                   (the index (+ ,cumulative-offset ,end))
+                   (the index (+ ,cumulative-offset ,defaulted-end))
                    (the index ,cumulative-offset)))
         (declare (type index ,cumulative-offset))))))
 
                `(lambda (,',array ,@n-indices
                                   ,@',(when new-value (list new-value)))
                   (let* (,@(let ((,index -1))
-                             (mapcar #'(lambda (name)
-                                         `(,name (array-dimension
-                                                  ,',array
-                                                  ,(incf ,index))))
+                             (mapcar (lambda (name)
+                                       `(,name (array-dimension
+                                                ,',array
+                                                ,(incf ,index))))
                                      dims))
                            (,',index
                             ,(if (null dims)