Ignore:
Timestamp:
Jan 18, 2004, 3:35:25 AM (16 years ago)
Author:
gb
Message:

DISPLACED-ARRAY-P didn't handle transitive displacement.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/level-0/l0-pred.lisp

    r163 r309  
    203203(defun displaced-array-p (array)
    204204  (if (%array-is-header array)
    205     (values (%svref array ppc32::arrayH.data-vector-cell)
    206             (%svref array ppc32::arrayH.displacement-cell))
     205    (do* ((disp (%svref array ppc32::arrayH.displacement-cell)
     206                (+ disp (the fixnum (%svref target ppc32::arrayH.displacement-cell))))
     207          (target (%svref array ppc32::arrayH.data-vector-cell)
     208                  (%svref target ppc32::arrayH.data-vector-cell)))
     209         ((not (%array-is-header target))
     210          (values target disp)))
    207211    (values nil 0)))
    208212
Note: See TracChangeset for help on using the changeset viewer.