summaryrefslogtreecommitdiff
path: root/includes/registry.inc
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2010-06-08 03:16:05 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2010-06-08 03:16:05 +0000
commit70dd028d18b96e3c974900c26b20bbd8e7d97399 (patch)
treee5110575e2d8b34a899df01bdab12b2cd3920f63 /includes/registry.inc
parent0f63b2214ded6ca377b6bf4aa0dff1b0ccf7f950 (diff)
downloadbrdo-70dd028d18b96e3c974900c26b20bbd8e7d97399.tar.gz
brdo-70dd028d18b96e3c974900c26b20bbd8e7d97399.tar.bz2
#797024 follow-up by justinrandell: Remove critical performance regression due to stale file time values.
Diffstat (limited to 'includes/registry.inc')
-rw-r--r--includes/registry.inc14
1 files changed, 9 insertions, 5 deletions
diff --git a/includes/registry.inc b/includes/registry.inc
index a092ee289..7b54e4833 100644
--- a/includes/registry.inc
+++ b/includes/registry.inc
@@ -129,13 +129,17 @@ function registry_get_parsed_files() {
*/
function _registry_parse_files($files) {
$parsed_files = array();
+ $filetimes = array();
foreach ($files as $filename => $file) {
if (file_exists($filename)) {
- $filectime = filectime($filename);
- $filemtime = filemtime($filename);
+ $filetimes[$filename] = array(
+ 'filectime' => filectime($filename),
+ 'filemtime' => filemtime($filename),
+ );
$modified_file = !isset($file['filectime']) || !isset($file['filemtime'])
- || $filectime != $file['filectime'] || $filemtime != $file['filemtime'];
+ || $filetimes[$filename]['filectime'] != $file['filectime']
+ || $filetimes[$filename]['filemtime'] != $file['filemtime'];
if ($modified_file) {
// Delete registry entries for this file, so we can insert the new resources.
db_delete('registry')
@@ -150,8 +154,8 @@ function _registry_parse_files($files) {
db_merge('registry_file')
->key(array('filename' => $filename))
->fields(array(
- 'filectime' => $filectime,
- 'filemtime' => $filemtime,
+ 'filectime' => $filetimes[$filename]['filectime'],
+ 'filemtime' => $filetimes[$filename]['filemtime'],
))
->execute();
}