[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
guile/guile-core/oop goops.scm
From: |
Mikael Djurfeldt |
Subject: |
guile/guile-core/oop goops.scm |
Date: |
Mon, 06 Nov 2000 18:18:52 -0800 |
CVSROOT: /cvs
Module name: guile
Changes by: Mikael Djurfeldt <address@hidden> 00/11/06 18:18:52
Modified files:
guile-core/oop : goops.scm
Log message:
* goops.scm (internal-add-method!): Set n-specialized of a generic
function to the number of specializers regardless if it has rest
args or not.
CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/oop/goops.scm.diff?r1=1.1&r2=1.2
Patches:
Index: guile/guile-core/oop/goops.scm
diff -u guile/guile-core/oop/goops.scm:1.1 guile/guile-core/oop/goops.scm:1.2
--- guile/guile-core/oop/goops.scm:1.1 Wed Oct 25 07:48:41 2000
+++ guile/guile-core/oop/goops.scm Mon Nov 6 18:18:52 2000
@@ -531,21 +531,8 @@
(slot-set! gf 'methods (compute-new-list-of-methods gf m))
(let ((specializers (slot-ref m 'specializers)))
(slot-set! gf 'n-specialized
- (let ((n-specialized (slot-ref gf 'n-specialized)))
- ;; The magnitude indicates # specializers.
- ;; A negative value indicates that at least one
- ;; method has rest arguments. (Ugly but effective
- ;; space optimization saving one slot in GF objects.)
- (cond ((negative? n-specialized)
- (- (max (+ 1 (length* specializers))
- (abs n-specialized))))
- ((list? specializers)
- (max (length specializers)
- n-specialized))
- (else
- (- (+ 1 (max (length* specializers)
- n-specialized)))))
- )))
+ (max (length* specializers)
+ (slot-ref gf 'n-specialized))))
(%invalidate-method-cache! gf)
(add-method-in-classes! m)
*unspecified*)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- guile/guile-core/oop goops.scm,
Mikael Djurfeldt <=