diff options
-rw-r--r-- | includes/common.inc | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/includes/common.inc b/includes/common.inc index 0a3ed73ae..5f56d4413 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -6918,12 +6918,18 @@ function drupal_write_record($table, &$record, $primary_keys = array()) { * @see drupal_parse_info_format() */ function drupal_parse_info_file($filename) { - if (!file_exists($filename)) { - return array(); - } + $info = &drupal_static(__FUNCTION__, array()); - $data = file_get_contents($filename); - return drupal_parse_info_format($data); + if (!isset($info[$filename])) { + if (!file_exists($filename)) { + $info[$filename] = array(); + } + else { + $data = file_get_contents($filename); + $info[$filename] = drupal_parse_info_format($data); + } + } + return $info[$filename]; } /** |