diff --git a/modules/system/system.module b/modules/system/system.module index 3ebc657..b25f2c7 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -2382,6 +2382,10 @@ function _system_rebuild_module_data() { // Invoke hook_system_info_alter() to give installed modules a chance to // modify the data in the .info files if necessary. + // system_rebuild_module_data() is often called before a full bootstrap, + // such as in the installer. So to allow hook_system_info_alter() to run + // successfully, ensure all modules are loaded before invoking the hook. + module_load_all(); $type = 'module'; drupal_alter('system_info', $modules[$key]->info, $modules[$key], $type); } diff --git a/update.php b/update.php index a777920..c85f4c3 100644 --- a/update.php +++ b/update.php @@ -370,6 +370,9 @@ if (empty($op) && update_access_allowed()) { // in updated code are picked up. module_implements('', FALSE, TRUE); + // Rebuild the registry so that any classes moved by modules are rescanned. + registry_rebuild(); + // Set up $language, since the installer components require it. drupal_language_initialize();