diff --git a/application/forms.class.inc.php b/application/forms.class.inc.php index 8021d5e93..e8cbe785d 100644 --- a/application/forms.class.inc.php +++ b/application/forms.class.inc.php @@ -1368,23 +1368,30 @@ class RunTimeIconSelectionField extends DesignerIconSelectionField static protected function FindIconsOnDisk($sBaseDir, $sDir = '') { - $sKey = md5($sBaseDir.'/'.$sDir); - $sCacheFile = utils::GetCachePath().'available-icons-'.$sKey.'.php'; + $aFiles = null; + $sKey = $sBaseDir.'/'.$sDir; + $sShortKey = crc32($sKey); + $sCacheFile = utils::GetCachePath().'available-icons-'.$sShortKey.'.php'; + $sCacheClass = 'AvailableIcons_'.$sShortKey; if (file_exists($sCacheFile)) { require_once($sCacheFile); - $aFiles = AvailableIcons::$aIconFiles; + if ($sCacheClass::$sKey === $sKey) // crc32 collision detection + { + $aFiles = $sCacheClass::$aIconFiles; + } } - else + if ($aFiles === null) { $aFiles = self::_FindIconsOnDisk($sBaseDir, $sDir); $sAvailableIcons = '