summaryrefslogtreecommitdiff
path: root/modules/system
diff options
context:
space:
mode:
authorGábor Hojtsy <gabor@hojtsy.hu>2007-12-13 10:46:43 +0000
committerGábor Hojtsy <gabor@hojtsy.hu>2007-12-13 10:46:43 +0000
commit050008410d34a78d93cac155476d359669a3cad7 (patch)
treed99fdabceb910603294b92b23be24c56cb62b033 /modules/system
parenta64e5f38d1d662756ce9190db028773c7f90ddff (diff)
downloadbrdo-050008410d34a78d93cac155476d359669a3cad7.tar.gz
brdo-050008410d34a78d93cac155476d359669a3cad7.tar.bz2
#194010 by chx: Proper recursive dependency checking and ordering module installation in dependency order, so later installed modules can use previously installed module functionality
Diffstat (limited to 'modules/system')
-rw-r--r--modules/system/system.admin.inc6
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc
index 368056a2b..a81f36f3d 100644
--- a/modules/system/system.admin.inc
+++ b/modules/system/system.admin.inc
@@ -535,6 +535,12 @@ function system_theme_settings_submit($form, &$form_state) {
* Recursively check compatability
*/
function _system_is_incompatible(&$incompatible, $files, $file) {
+ static $seen;
+ // We need to protect ourselves in case of a circular dependency.
+ if (isset($seen[$file->name])) {
+ return isset($incompatible[$file->name]);
+ }
+ $seen[$file->name] = TRUE;
if (isset($incompatible[$file->name])) {
return TRUE;
}