Changeset 241


Ignore:
Timestamp:
Jan 9, 2004, 1:24:20 PM (21 years ago)
Author:
Gary Byers
Message:

LENGTH changes.

File:
1 edited

Legend:

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

    r237 r241  
    264264        (return nil)))))
    265265
     266(defun proper-list-p (x)
     267  (and (typep x 'list) (not (null (list-length x)))))
     268
     269(defun proper-sequence-p (x)
     270  (cond ((typep x 'vector))
     271        ((typep x 'list) (not (null (list-length x))))))
    266272
    267273
    268274(defun length (seq)
    269   (let* ((typecode (typecode seq)))
    270     (declare (fixnum typecode))
    271     (if (= typecode ppc32::tag-list)
    272       (or (list-length seq)
    273           (%err-disp $XIMPROPERLIST seq))
    274       (if (= typecode ppc32::subtag-vectorH)
    275         (%svref seq ppc32::vectorH.logsize-cell)
    276         (if (> typecode ppc32::subtag-vectorH)
    277           (uvsize seq)
    278           (report-bad-arg seq 'sequence))))))
     275  (seq-dispatch
     276   seq
     277   (or (list-length seq)
     278       (%err-disp $XIMPROPERLIST seq))
     279   (if (= (the fixnum (typecode seq)) ppc32::subtag-vectorH)
     280     (%svref seq ppc32::vectorH.logsize-cell)
     281     (uvsize seq))))
     282
    279283(defun %str-from-ptr (pointer len)
    280284  (%copy-ptr-to-ivector pointer 0 (make-string len :element-type 'base-char) 0 len))
Note: See TracChangeset for help on using the changeset viewer.