Ticket #867: patch867

File patch867, 1022 bytes (added by megane, 12 years ago)

possible patch

Line 
1Index: 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