summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--system/core/Common.php21
-rw-r--r--system/libraries/Email.php9
2 files changed, 20 insertions, 10 deletions
diff --git a/system/core/Common.php b/system/core/Common.php
index 7f2708151..752a2e7f1 100644
--- a/system/core/Common.php
+++ b/system/core/Common.php
@@ -304,15 +304,22 @@ if ( ! function_exists('get_mimes'))
*/
function &get_mimes()
{
- static $_mimes = array();
+ static $_mimes;
- if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'))
+ if (empty($_mimes))
{
- $_mimes = include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php');
- }
- elseif (file_exists(APPPATH.'config/mimes.php'))
- {
- $_mimes = include(APPPATH.'config/mimes.php');
+ if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'))
+ {
+ $_mimes = include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php');
+ }
+ elseif (file_exists(APPPATH.'config/mimes.php'))
+ {
+ $_mimes = include(APPPATH.'config/mimes.php');
+ }
+ else
+ {
+ $_mimes = array();
+ }
}
return $_mimes;
diff --git a/system/libraries/Email.php b/system/libraries/Email.php
index 1f2f6a991..011a88c22 100644
--- a/system/libraries/Email.php
+++ b/system/libraries/Email.php
@@ -2234,15 +2234,18 @@ class CI_Email {
*/
protected function _mime_types($ext = '')
{
- static $mimes;
+ static $_mimes;
$ext = strtolower($ext);
- if ( ! is_array($mimes))
+ if (empty($_mimes))
{
- $mimes =& get_mimes();
+ // references cannot be directly assigned to static variables, so we use an array
+ $_mimes[0] =& get_mimes();
}
+ $mimes =& $_mimes[0];
+
if (isset($mimes[$ext]))
{
return is_array($mimes[$ext])