Ignore:
Timestamp:
May 9, 2007, 7:52:41 AM (13 years ago)
Author:
gb
Message:

Clear dispatch table cache if GF APO changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/level-1/l1-dcode.lisp

    r6189 r6488  
    130130                (%gf-dispatch-table-keyvect dt) keyvect))
    131131        (when (and apo-p lambda-list-p)
    132           (setf (%gf-dispatch-table-precedence-list dt)
    133                 (canonicalize-argument-precedence-order
    134                  argument-precedence-order
    135                  (required-lambda-list-args lambda-list))))
     132          (let* ((old-precedence-list (%gf-dispatch-table-precedence-list dt)))
     133            (setf (%gf-dispatch-table-precedence-list dt)
     134                  (canonicalize-argument-precedence-order
     135                   argument-precedence-order
     136                   (required-lambda-list-args lambda-list)))
     137            (unless (equal old-precedence-list
     138                           (%gf-dispatch-table-precedence-list dt))
     139              (clear-gf-dispatch-table dt))))
    136140        (lfun-bits gf (logior (ash 1 $lfbits-gfn-bit)
    137141                              (logand $lfbits-args-mask newbits)))))
Note: See TracChangeset for help on using the changeset viewer.