From 360966dcdfef76af0728e3222df7731712f1e096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Andor?= Date: Tue, 16 Feb 2021 21:58:41 +0100 Subject: [PATCH] EventDispatcher uses only the return value of the last one listener, refs #9703 --- src/Composer/EventDispatcher/EventDispatcher.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Composer/EventDispatcher/EventDispatcher.php b/src/Composer/EventDispatcher/EventDispatcher.php index faedb969a..329b00f0a 100644 --- a/src/Composer/EventDispatcher/EventDispatcher.php +++ b/src/Composer/EventDispatcher/EventDispatcher.php @@ -156,8 +156,9 @@ class EventDispatcher $this->pushEvent($event); - $return = 0; + $returnMax = 0; foreach ($listeners as $callable) { + $return = 0; $this->ensureBinDirIsInPath(); if (!is_string($callable)) { @@ -273,6 +274,8 @@ class EventDispatcher } } + $returnMax = max($returnMax, $return); + if ($event->isPropagationStopped()) { break; } @@ -280,7 +283,7 @@ class EventDispatcher $this->popEvent(); - return $return; + return $returnMax; } protected function executeTty($exec)