diff --git a/core/ManifestBuilder.php b/core/ManifestBuilder.php index e63c2698f..d692cffcd 100644 --- a/core/ManifestBuilder.php +++ b/core/ManifestBuilder.php @@ -418,10 +418,20 @@ class ManifestBuilder { // were upgrading their sites $fileMD5 = md5($file); $parseCacheFile = TEMP_FOLDER . "/manifestClassParse-" . str_replace(array("/", ":", "\\", "."), "_", basename($filename)) . "-$fileMD5"; - if(!file_exists($parseCacheFile)) { + if(file_exists($parseCacheFile)) { + include($parseCacheFile); + // Check for a bad cache file + if(!isset($classes) || !isset($interfaces) || !is_array($classes) || !is_array($interfaces)) { + unset($classes); + unset($interfaces); + } + } + + // Either the parseCacheFile doesn't exist, or its bad + if(!isset($classes)) { $tokens = token_get_all($file); - $classes = self::getClassDefParser()->findAll($tokens); - $interfaces = self::getInterfaceDefParser()->findAll($tokens); + $classes = (array)self::getClassDefParser()->findAll($tokens); + $interfaces = (array)self::getInterfaceDefParser()->findAll($tokens); $cacheContent = '