1 | Index: coops.scm |
---|
2 | =================================================================== |
---|
3 | --- coops.scm (revision 26776) |
---|
4 | +++ coops.scm (working copy) |
---|
5 | @@ -372,21 +372,23 @@ |
---|
6 | (lambda (%before-method) |
---|
7 | (apply %before-method %args)) |
---|
8 | %applicable-before-methods) |
---|
9 | - (let ((%res |
---|
10 | + (call-with-values |
---|
11 | + (lambda () |
---|
12 | (apply |
---|
13 | (let |
---|
14 | ((m (car %applicable-primary-methods))) |
---|
15 | (set! %applicable-primary-methods |
---|
16 | - (cdr %applicable-primary-methods)) |
---|
17 | + (cdr %applicable-primary-methods)) |
---|
18 | m) |
---|
19 | %next-method? |
---|
20 | %call-next-method |
---|
21 | - %args))) |
---|
22 | - (for-each |
---|
23 | - (lambda (%after-method) |
---|
24 | - (apply %after-method %args)) |
---|
25 | - %applicable-after-methods) |
---|
26 | - %res)))))) |
---|
27 | + %args)) |
---|
28 | + (lambda (#!rest %res) |
---|
29 | + (for-each |
---|
30 | + (lambda (%after-method) |
---|
31 | + (apply %after-method %args)) |
---|
32 | + %applicable-after-methods) |
---|
33 | + (apply values %res)))))))) |
---|
34 | (%call-next-method)))))) |
---|
35 | (cond-expand |
---|
36 | (no-cache |
---|