[EventDispatcher] fix memory leak in a getListeners

This commit is contained in:
Tobias Schultze 2015-09-17 03:14:14 +02:00
parent 4f9a411389
commit ec59953f4c
1 changed files with 6 additions and 4 deletions

View File

@ -61,6 +61,10 @@ class EventDispatcher implements EventDispatcherInterface
public function getListeners($eventName = null)
{
if (null !== $eventName) {
if (!isset($this->listeners[$eventName])) {
return array();
}
if (!isset($this->sorted[$eventName])) {
$this->sortListeners($eventName);
}
@ -177,9 +181,7 @@ class EventDispatcher implements EventDispatcherInterface
{
$this->sorted[$eventName] = array();
if (isset($this->listeners[$eventName])) {
krsort($this->listeners[$eventName]);
$this->sorted[$eventName] = call_user_func_array('array_merge', $this->listeners[$eventName]);
}
krsort($this->listeners[$eventName]);
$this->sorted[$eventName] = call_user_func_array('array_merge', $this->listeners[$eventName]);
}
}