diff --git a/modules/ui_icons_menu/ui_icons_menu.module b/modules/ui_icons_menu/ui_icons_menu.module index e1359c49f75d5cfa0657b123f549c61b106434c3..d1c69d7a06adff2962c694f04d7e6087bde4ec58 100644 --- a/modules/ui_icons_menu/ui_icons_menu.module +++ b/modules/ui_icons_menu/ui_icons_menu.module @@ -9,6 +9,7 @@ use Drupal\Component\Render\FormattableMarkup; use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Theme\Icon\IconDefinition; +use Drupal\Core\Url; /** * Implements hook_help(). @@ -89,6 +90,16 @@ function ui_icons_menu__preprocess_menu(array &$items): void { * The menu item. */ function ui_icons_menu__preprocess_menu_item(array &$item): void { + // Being extra defensive on the menu as other themes/modules can alter in + // unknown ways. + if (!isset($item['url'])) { + return; + } + + if (!$item['url'] instanceof Url) { + return; + } + /** @var \Drupal\Core\Url $url */ $url = &$item['url'];