diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc index 5566d96..48815f3 100644 --- a/core/includes/bootstrap.inc +++ b/core/includes/bootstrap.inc @@ -699,13 +699,14 @@ function drupal_get_filename($type, $name, $filename = NULL) { $files[$type][$name] = $filename; } elseif (!isset($files[$type][$name])) { + $container = \Drupal::getContainer(); // For modules, first consult ModuleHandler for the current module list. - if ($type == 'module' && !isset($files[$type])) { + if ($type == 'module' && !isset($files[$type]) && $container->has('module_handler')) { $files[$type] = \Drupal::moduleHandler()->getModuleList(); } // Consult the extension lists prepared by system_rebuild_module_data() and // system_rebuild_theme_data() in State. - if (!isset($files[$type][$name])) { + if (!isset($files[$type][$name]) && $container->has('state')) { $file_list = \Drupal::state()->get('system.' . $type . '.files'); if ($file_list && isset($file_list[$name]) && file_exists(DRUPAL_ROOT . '/' . $file_list[$name])) { $files[$type][$name] = $file_list[$name]; @@ -715,6 +716,10 @@ function drupal_get_filename($type, $name, $filename = NULL) { if (!isset($files[$type][$name])) { $dir = ($type == 'theme_engine' ? 'themes/engines' : $original_type . 's'); $listing = new ExtensionDiscovery(); + // Prevent an infinite recursion by this legacy function. + if ($original_type == 'profile') { + $listing->setProfileDirectories(array()); + } foreach ($listing->scan($dir) as $extension_name => $file) { $files[$type][$extension_name] = $file->uri; }