fixed infinite loop in inheritance (closes #66)
authorFabien Potencier <fabien.potencier@gmail.com>
Fri, 11 Jun 2010 05:10:43 +0000 (07:10 +0200)
committerFabien Potencier <fabien.potencier@gmail.com>
Fri, 11 Jun 2010 05:10:43 +0000 (07:10 +0200)
lib/Twig/Template.php
test/fixtures/tags/inheritance/multiple.test [new file with mode: 0644]

index 812a1b3..4e486c1 100644 (file)
@@ -27,7 +27,7 @@ abstract class Twig_Template extends Twig_Resource implements Twig_TemplateInter
 
     protected function getParent($context, $parents)
     {
-        return call_user_func($parents[0], $context, array_slice($parents, 0));
+        return call_user_func($parents[0], $context, array_slice($parents, 1));
     }
 
     public function pushBlocks($blocks)
diff --git a/test/fixtures/tags/inheritance/multiple.test b/test/fixtures/tags/inheritance/multiple.test
new file mode 100644 (file)
index 0000000..4aba998
--- /dev/null
@@ -0,0 +1,12 @@
+--TEST--
+"extends" tag
+--TEMPLATE--
+{% extends "layout.twig" %}{% block content %}{% parent %}index {% endblock %}
+--TEMPLATE(layout.twig)--
+{% extends "base.twig" %}{% block content %}{% parent %}layout {% endblock %}
+--TEMPLATE(base.twig)--
+{% block content %}base {% endblock %}
+--DATA--
+return array()
+--EXPECT--
+base layout index