diff --git a/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php b/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php index 752c8aa8293e..017459723d92 100644 --- a/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php +++ b/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php @@ -191,21 +191,18 @@ public function getNotCalledListeners() return []; } + $calledListeners = []; + + if (null !== $this->callStack) { + foreach ($this->callStack as $calledListener) { + $calledListeners[] = $calledListener->getWrappedListener(); + } + } + $notCalled = []; foreach ($allListeners as $eventName => $listeners) { foreach ($listeners as $listener) { - $called = false; - if (null !== $this->callStack) { - foreach ($this->callStack as $calledListener) { - if ($calledListener->getWrappedListener() === $listener) { - $called = true; - - break; - } - } - } - - if (!$called) { + if (!\in_array($listener, $calledListeners, true)) { if (!$listener instanceof WrappedListener) { $listener = new WrappedListener($listener, null, $this->stopwatch, $this); }