From 7f58730904bf6b712ac5d5f8d018ef7865d0daae Mon Sep 17 00:00:00 2001 From: Hamish Friedlander Date: Tue, 12 Mar 2013 16:52:11 +1300 Subject: [PATCH] FIX Avoid get_parent_class in ConfigStaticManifest (was loading all classes) --- core/manifest/ConfigStaticManifest.php | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/core/manifest/ConfigStaticManifest.php b/core/manifest/ConfigStaticManifest.php index f53f9f828..ee73da5e0 100644 --- a/core/manifest/ConfigStaticManifest.php +++ b/core/manifest/ConfigStaticManifest.php @@ -63,7 +63,7 @@ class SS_ConfigStaticManifest { if (isset($this->index[$class])) { $info = $this->index[$class]; - if ($details = $this->cache->load($this->key.'_'.$info['base'])) { + if ($details = $this->cache->load($this->key.'_'.$info['key'])) { $this->statics += $details; } @@ -109,33 +109,26 @@ class SS_ConfigStaticManifest { if($cache) { $index = array('$statics' => array()); - $bases = array(); + $keysets = array(); foreach ($this->statics as $class => $details) { if (in_array($class, self::$initial_classes)) { $index['$statics'][$class] = $details; } else { - $base = $class; - - do { - $parent = get_parent_class($base); - } - while ($parent != 'Object' && $parent != 'ViewableData' && $parent && ($base = $parent)); - - $base = sha1($base); - $bases[$base][$class] = $details; + $key = sha1($class); + $keysets[$key][$class] = $details; $index[$class] = array( - 'base' => $base, + 'key' => $key, 'path' => $details['path'], 'mtime' => filemtime($details['path']), ); } } - foreach ($bases as $base => $details) { - $this->cache->save($details, $this->key.'_'.$base); + foreach ($keysets as $key => $details) { + $this->cache->save($details, $this->key.'_'.$key); } $this->cache->save($index, $this->key);