| 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
|
|---|