Skip to content

Commit 7b430b1

Browse files
committed
Merge branch '2.1' into 2.2
* 2.1: fixed a circular call (closes #6864) Correct comment in NativeSessionStorage regarding session.save_handler [Security] Add PHPDoc to AuthenticationEvents
2 parents d032758 + 2bb975b commit 7b430b1

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

Dumper/PhpDumper.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -958,23 +958,25 @@ private function getDefinitionsFromArguments(array $arguments)
958958
*
959959
* @return Boolean
960960
*/
961-
private function hasReference($id, array $arguments, $deep = false)
961+
private function hasReference($id, array $arguments, $deep = false, $visited = array())
962962
{
963963
foreach ($arguments as $argument) {
964964
if (is_array($argument)) {
965-
if ($this->hasReference($id, $argument, $deep)) {
965+
if ($this->hasReference($id, $argument, $deep, $visited)) {
966966
return true;
967967
}
968968
} elseif ($argument instanceof Reference) {
969969
if ($id === (string) $argument) {
970970
return true;
971971
}
972972

973-
if ($deep) {
973+
if ($deep && !isset($visited[(string) $argument])) {
974+
$visited[(string) $argument] = true;
975+
974976
$service = $this->container->getDefinition((string) $argument);
975977
$arguments = array_merge($service->getMethodCalls(), $service->getArguments(), $service->getProperties());
976978

977-
if ($this->hasReference($id, $arguments, $deep)) {
979+
if ($this->hasReference($id, $arguments, $deep, $visited)) {
978980
return true;
979981
}
980982
}

0 commit comments

Comments
 (0)