From a415db91d44ccde50a5ed0b1c35ec4d450ae5b2d Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Tue, 26 Mar 2013 12:47:52 +0100 Subject: [PATCH] FIX Clone Config_LRU incl. objects in array Caused key confusions when using Config::nest()/unnest() --- core/Config.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/core/Config.php b/core/Config.php index 847c482d4..ad92f1cfc 100644 --- a/core/Config.php +++ b/core/Config.php @@ -623,6 +623,20 @@ class Config_LRU { $this->indexing = array(); } + public function __clone() { + if (version_compare(PHP_VERSION, '5.3.7', '<')) { + // SplFixedArray causes seg faults before PHP 5.3.7 + $cloned = array(); + } + else { + $cloned = new SplFixedArray(self::SIZE); + } + for ($i = 0; $i < self::SIZE; $i++) { + $cloned[$i] = clone $this->cache[$i]; + } + $this->cache = $cloned; + } + public function set($key, $val, $tags = array()) { // Find an index to set at $replacing = null;