Skip to content

Commit 045384c

Browse files
committed
Fix infinite recursion
1 parent e645884 commit 045384c

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

lib/src/server/service.dart

+5-1
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,12 @@ class ServiceMethod<Q, R> {
7676
var invoker = _createCall();
7777

7878
for (final interceptor in interceptors.reversed) {
79+
final delegate = invoker;
80+
// invoker is actually reassigned in the same scope as the above function,
81+
// reassigning invoker in delegate is required to avoid an infinite
82+
// recursion
7983
invoker = (call, method, requests) =>
80-
interceptor.intercept<Q, R>(call, method, requests, invoker);
84+
interceptor.intercept<Q, R>(call, method, requests, delegate);
8185
}
8286

8387
return invoker(call, this, requests);

0 commit comments

Comments
 (0)