Skip to content

Commit 8b5b8e2

Browse files
authored
Fix stack cleanup and performance in MiddlewareDispatcher (#37)
1 parent e56a1e8 commit 8b5b8e2

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/MiddlewareDispatcher.php

+6-1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ public function withMiddlewares(array $middlewareDefinitions): self
7373
{
7474
$new = clone $this;
7575
$new->middlewareDefinitions = $middlewareDefinitions;
76+
77+
// Fixes a memory leak.
78+
unset($new->stack);
7679
$new->stack = null;
7780

7881
return $new;
@@ -92,8 +95,10 @@ public function hasMiddlewares(): bool
9295
private function buildMiddlewares(): array
9396
{
9497
$middlewares = [];
98+
$factory = $this->middlewareFactory;
99+
95100
foreach ($this->middlewareDefinitions as $middlewareDefinition) {
96-
$middlewares[] = fn (): MiddlewareInterface => $this->middlewareFactory->create($middlewareDefinition);
101+
$middlewares[] = static fn (): MiddlewareInterface => $factory->create($middlewareDefinition);
97102
}
98103

99104
return $middlewares;

0 commit comments

Comments
 (0)