From 045384c1ef8940713e8f28d4f171c3fbc0559f34 Mon Sep 17 00:00:00 2001 From: Thomas Hareau Date: Wed, 16 Apr 2025 15:25:18 +0200 Subject: [PATCH] Fix infinite recursion --- lib/src/server/service.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/src/server/service.dart b/lib/src/server/service.dart index 62fccf6..9f1b2fa 100644 --- a/lib/src/server/service.dart +++ b/lib/src/server/service.dart @@ -76,8 +76,12 @@ class ServiceMethod { var invoker = _createCall(); for (final interceptor in interceptors.reversed) { + final delegate = invoker; + // invoker is actually reassigned in the same scope as the above function, + // reassigning invoker in delegate is required to avoid an infinite + // recursion invoker = (call, method, requests) => - interceptor.intercept(call, method, requests, invoker); + interceptor.intercept(call, method, requests, delegate); } return invoker(call, this, requests);