Ignore:
Timestamp:
Aug 4, 2008, 9:44:06 AM (11 years ago)
Author:
gb
Message:

Don't assume that (uvref istruct 0) is a symbol; try to use accessors
instead, and hope that I caught everything ...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/l1-typesys.lisp

    r9892 r10309  
    488488(defun ctype-p (x)
    489489  (and (eql (typecode x) target::subtag-istruct)
    490        (memq (%svref x 0)
     490       (memq (istruct-type-name x)
    491491             '#.(cons 'ctype
    492492                      (cons 'unknown-ctype                             
     
    13831383;;; be stack-allocated or might be EQUAL without being EQL.
    13841384(defun cacheable-ctype-p (ctype)
    1385   (case (%svref ctype 0)
     1385  (case (istruct-cell-name (%svref ctype 0))
    13861386    (member-ctype
    13871387     (dolist (m (member-ctype-members ctype) t)
     
    14031403                     (cacheable-ctype-p (key-info-type info)))
    14041404                 (values-ctype-keywords ctype))
    1405           (or (not (eq (%svref ctype 0) 'function-ctype))
     1405          (or (not (eq (istruct-cell-name (%svref ctype 0)) 'function-ctype))
    14061406              (let* ((result (function-ctype-returns ctype)))
    14071407                (or (null result)
     
    34133413
    34143414(defun args-ctype-p (x) (and (eql (typecode x) target::subtag-istruct)
    3415                              (member (%svref x 0)
     3415                             (member (istruct-type-name x)
    34163416                                     '(args-ctype values-ctype function-ctype))))
    34173417
Note: See TracChangeset for help on using the changeset viewer.