X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fcombin.lisp;h=c65f3900c5aaa2ee216663cd921c72bf9140a12b;hb=2e47ed527bdcb76cf5eb52f66cc08f4fb0a0041d;hp=ba3d35ab3ecf4135a5669469d8a6368fcce185ef;hpb=7474a620a5538091b9c1cba877156f5645d78aa6;p=sbcl.git diff --git a/src/pcl/combin.lisp b/src/pcl/combin.lisp index ba3d35a..c65f390 100644 --- a/src/pcl/combin.lisp +++ b/src/pcl/combin.lisp @@ -243,16 +243,12 @@ (declare (ignorable #'%no-primary-method #'%invalid-qualifiers)) ,effective-method))) (mc-args-p - (let* ((required - ;; FIXME: Ick. Shared idiom, too, with stuff in cache.lisp - (let (req) - (dotimes (i (length metatypes) (nreverse req)) - (push (dfun-arg-symbol i) req)))) + (let* ((required (make-dfun-required-args metatypes)) (gf-args (if applyp `(list* ,@required (sb-c::%listify-rest-args .dfun-more-context. - (the (and (unsigned-byte fixnum)) + (the (and unsigned-byte fixnum) .dfun-more-count.))) `(list ,@required)))) `(lambda ,ll