Răsfoiți Sursa

using array keys instead of iteration over context for creating subcontext arrays. this fixes incorrect context stacks in recursive partials.

Justin Hileman 16 ani în urmă
părinte
comite
0893a7d39d
1 a modificat fișierele cu 6 adăugiri și 6 ștergeri
  1. 6 6
      Mustache.php

+ 6 - 6
Mustache.php

@@ -92,7 +92,6 @@ class Mustache {
 		$this->_otag = '{{';
 		$this->_ctag = '}}';
 		$this->_localPragmas = null;
-
 		if ($keys = array_keys($this->_context)) {
 			if ($this->_context[$keys[0]] instanceof Mustache) {
 				$this->_context[$keys[0]] =& $this;
@@ -475,8 +474,8 @@ class Mustache {
 	protected function _pushContext(&$local_context) {
 		$new = array();
 		$new[] =& $local_context;
-		foreach ($this->_context as $view) {
-			$new[] =& $view;
+		foreach (array_keys($this->_context) as $key) {
+			$new[] =& $this->_context[$key];
 		}
 		$this->_context = $new;
 	}
@@ -491,9 +490,10 @@ class Mustache {
 	protected function _popContext() {
 		$new = array();
 
-		array_shift($this->_context);
-		foreach ($this->_context as $view) {
-			$new[] =& $view;
+		$keys = array_keys($this->_context);
+		array_shift($keys);
+		foreach ($keys as $key) {
+			$new[] =& $this->_context[$key];
 		}
 		$this->_context = $new;
 	}