Changeset 301


Ignore:
Timestamp:
Jan 15, 2004, 12:29:51 AM (21 years ago)
Author:
Gary Byers
Message:

%%CHECK-KEYWORDS is (a) slow (b) wrong (c) probably unnecessary.
If (c) is true, there's a similar case where the same things are probably
true as well, and callers should be changed. (c) is certainly true in
some cases (when the "combined method" is a simple method.

File:
1 edited

Legend:

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

    r283 r301  
    951951
    952952; vector arg is (vector key-index keyvect combined-method) ; the next combined method
     953#|
    953954(defun %%check-keywords (vector-arg args)
    954955  (flet ((do-it (vector-arg args)
     
    964965                 (declare (fixnum  key-index keys-in keyvect-len))
    965966                 (when (logbitp 0 keys-in) (odd-keys-error vector-arg (collect-lexpr-args args key-index args-len)))
     967                 (setq aok (%cadr (pl-search args :allow-other-keys)))
    966968                 (do ((i key-index (+ i 2))
    967969                      (kargs (nthcdr key-index args) (cddr kargs)))
     
    991993      (with-list-from-lexpr (args-list args)
    992994        (do-it vector-arg args-list)))))
     995|#
     996
     997(defun %%check-keywords (vector-arg args)
     998  (let ((method (%svref vector-arg 2)))
     999    (if (listp args)
     1000      (apply method args)
     1001      (%apply-lexpr-tail-wise method args))))
     1002 
     1003
    9931004
    9941005; called from %%call-next-method-with-args - its the key-or-init-fn
Note: See TracChangeset for help on using the changeset viewer.