[EventDispatcher] Unwrap wrapped listeners internally

This commit is contained in:
Roland Franssen 2018-11-24 14:00:32 +01:00
parent 7f310b4c77
commit 448e2e2445

View File

@ -249,7 +249,7 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
{
foreach ($this->dispatcher->getListeners($eventName) as $listener) {
$priority = $this->getListenerPriority($eventName, $listener);
$wrappedListener = new WrappedListener($listener, null, $this->stopwatch, $this);
$wrappedListener = new WrappedListener($listener instanceof WrappedListener ? $listener->getWrappedListener() : $listener, null, $this->stopwatch, $this);
$this->wrappedListeners[$eventName][] = $wrappedListener;
$this->dispatcher->removeListener($eventName, $listener);
$this->dispatcher->addListener($eventName, $wrappedListener, $priority);