Reduce memory usage of the context restoration compiled at the end of for loops

This commit is contained in:
Fabien Potencier
2026-06-06 09:31:56 +02:00
parent 9a1d3d241f
commit 0197736dfc
3 changed files with 13 additions and 5 deletions
+8 -4
View File
@@ -77,7 +77,8 @@ foreach (\$context['_seq'] as \$context["key"] => \$context["item"]) {
}
\$_parent = \$context['_parent'];
unset(\$context['_seq'], \$context['key'], \$context['item'], \$context['_parent']);
\$context = array_intersect_key(\$context, \$_parent) + \$_parent;
\$context = array_intersect_key(\$context, \$_parent);
\$context += \$_parent;
EOF
];
@@ -119,7 +120,8 @@ foreach (\$context['_seq'] as \$context["k"] => \$context["v"]) {
}
\$_parent = \$context['_parent'];
unset(\$context['_seq'], \$context['k'], \$context['v'], \$context['_parent'], \$context['loop']);
\$context = array_intersect_key(\$context, \$_parent) + \$_parent;
\$context = array_intersect_key(\$context, \$_parent);
\$context += \$_parent;
EOF
];
@@ -161,7 +163,8 @@ foreach (\$context['_seq'] as \$context["k"] => \$context["v"]) {
}
\$_parent = \$context['_parent'];
unset(\$context['_seq'], \$context['k'], \$context['v'], \$context['_parent'], \$context['loop']);
\$context = array_intersect_key(\$context, \$_parent) + \$_parent;
\$context = array_intersect_key(\$context, \$_parent);
\$context += \$_parent;
EOF
];
@@ -210,7 +213,8 @@ if (!\$context['_iterated']) {
}
\$_parent = \$context['_parent'];
unset(\$context['_seq'], \$context['k'], \$context['v'], \$context['_parent'], \$context['_iterated'], \$context['loop']);
\$context = array_intersect_key(\$context, \$_parent) + \$_parent;
\$context = array_intersect_key(\$context, \$_parent);
\$context += \$_parent;
EOF
];