diff options
author | jokkedk <joakim@jokke.dk> | 2008-10-03 14:46:51 +0000 |
---|---|---|
committer | jokkedk <joakim@jokke.dk> | 2008-10-03 14:46:51 +0000 |
commit | 897d035c25a6e244aafb8add52aeb4e13c4eadd3 (patch) | |
tree | 3d889951430943ff2efa7d6e7316ef253f85647f | |
parent | 3a47c1a833a497892737d8668a7bcdad8bf45538 (diff) | |
download | webgrind-897d035c25a6e244aafb8add52aeb4e13c4eadd3.zip webgrind-897d035c25a6e244aafb8add52aeb4e13c4eadd3.tar.gz webgrind-897d035c25a6e244aafb8add52aeb4e13c4eadd3.tar.bz2 |
- Fixed preprocessed file check to make sure they are updated if the profile is newer
-rw-r--r-- | library/FileHandler.php | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/library/FileHandler.php b/library/FileHandler.php index b10961e..bb050b1 100644 --- a/library/FileHandler.php +++ b/library/FileHandler.php @@ -26,9 +26,8 @@ class Webgrind_FileHandler{ $files = $this->getFiles(Webgrind_Config::xdebugOutputFormat(), Webgrind_Config::xdebugOutputDir()); // Get list of preprocessed files - $prepFiles = $this->getFiles('/\\'.Webgrind_Config::$preprocessedSuffix.'$/', Webgrind_Config::storageDir()); - - // Loop over the preprocessed files. + $prepFiles = $this->getPrepFiles('/\\'.Webgrind_Config::$preprocessedSuffix.'$/', Webgrind_Config::storageDir()); + // Loop over the preprocessed files. foreach($prepFiles as $fileName=>$prepFile){ $fileName = str_replace(Webgrind_Config::$preprocessedSuffix,'',$fileName); @@ -104,6 +103,32 @@ class Webgrind_FileHandler{ } /** + * List of files in $dir whose filename has the format $format + * + * @return array Files + */ + private function getPrepFiles($format, $dir){ + $list = preg_grep($format,scandir($dir)); + $files = array(); + + $scriptFilename = $_SERVER['SCRIPT_FILENAME']; + + foreach($list as $file){ + $absoluteFilename = $dir.$file; + + // Make sure that script does not include the profile currently being generated. (infinite loop) + if (function_exists('xdebug_get_profiler_filename') && realpath(xdebug_get_profiler_filename())==realpath($absoluteFilename)) + continue; + + $files[$file] = array('absoluteFilename' => $absoluteFilename, + 'mtime' => filemtime($absoluteFilename), + 'preprocessed' => true, + 'filesize' => $this->bytestostring(filesize($absoluteFilename)) + ); + } + return $files; + } + /** * Get list of available trace files. Optionally including traces of the webgrind script it self * * @return array Files |