fixed template cloning problem with inheritance

This commit is contained in:
Fabien Potencier
2010-07-12 17:48:10 +02:00
parent 288ba6789e
commit 277c4430c6
2 changed files with 8 additions and 6 deletions
+4 -3
View File
@@ -78,15 +78,16 @@ class Twig_Node_Module extends Twig_Node
;
} else {
$compiler
->write("\$this->parent = ")
->write("\$parent = ")
->subcompile($this->parent)
->raw(";\n")
->write("if (!\$this->parent")
->write("if (!\$parent")
->raw(" instanceof Twig_Template) {\n")
->indent()
->write("\$this->parent = clone \$this->env->loadTemplate(\$this->parent);\n")
->write("\$parent = \$this->env->loadTemplate(\$parent);\n")
->outdent()
->write("}\n")
->write("\$this->parent = clone \$parent;\n")
;
}
+4 -3
View File
@@ -124,10 +124,11 @@ class __TwigTemplate_be925a7b06dda0dfdbd18a1509f7eb34 extends Twig_Template
public function display(array \$context)
{
if (null === \$this->parent) {
\$this->parent = (true) ? ("foo") : ("foo");
if (!\$this->parent instanceof Twig_Template) {
\$this->parent = clone \$this->env->loadTemplate(\$this->parent);
\$parent = (true) ? ("foo") : ("foo");
if (!\$parent instanceof Twig_Template) {
\$parent = \$this->env->loadTemplate(\$parent);
}
\$this->parent = clone \$parent;
\$this->parent->pushBlocks(\$this->blocks);
}
\$this->parent->display(\$context);