summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjokkedk <joakim@jokke.dk>2008-10-03 14:46:51 +0000
committerjokkedk <joakim@jokke.dk>2008-10-03 14:46:51 +0000
commit897d035c25a6e244aafb8add52aeb4e13c4eadd3 (patch)
tree3d889951430943ff2efa7d6e7316ef253f85647f
parent3a47c1a833a497892737d8668a7bcdad8bf45538 (diff)
downloadwebgrind-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.php31
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