fixed issue #395
authorJannis Grimm <jannis@gje.ch>
Sun, 24 Jul 2011 20:55:34 +0000 (22:55 +0200)
committerJannis Grimm <jannis@gje.ch>
Sun, 24 Jul 2011 20:55:34 +0000 (22:55 +0200)
lib/Twig/Node/Module.php

index 1af7622..5d319e6 100644 (file)
@@ -69,16 +69,15 @@ class Twig_Node_Module extends Twig_Node
         $compiler
             ->write("public function getParent(array \$context)\n", "{\n")
             ->indent()
-            ->write("if (null === \$this->parent) {\n")
-            ->indent();
-        ;
-
-        $this->compileLoadTemplate($compiler, $this->getNode('parent'), '$this->parent');
-
-        $compiler
+            ->write("\$parent = ")
+            ->subcompile($this->getNode('parent'))
+            ->raw(";\n")
+            ->write("if(!isset(\$this->parent[\$parent])) {\n")
+            ->indent()
+            ->write("\$this->parent[\$parent] = \$this->env->loadTemplate(\$parent);\n")
             ->outdent()
             ->write("}\n\n")
-            ->write("return \$this->parent;\n")
+            ->write("return \$this->parent[\$parent];\n")
             ->outdent()
             ->write("}\n\n")
         ;
@@ -161,6 +160,7 @@ class Twig_Node_Module extends Twig_Node
             }
 
             $compiler
+                ->write("\$parent = array()")
                 ->write("\$this->blocks = array_replace(\n")
                 ->indent()
             ;