summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/menu.inc9
1 files changed, 8 insertions, 1 deletions
diff --git a/includes/menu.inc b/includes/menu.inc
index eec342f69..b25a374ac 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -321,7 +321,14 @@ function menu_get_ancestors($parts) {
$ancestors = array();
$length = $number_parts - 1;
$end = (1 << $number_parts) - 1;
- $masks = variable_get('menu_masks', array());
+ $masks = variable_get('menu_masks');
+ // If the optimized menu_masks array is not available use brute force to get
+ // the correct $ancestors and $placeholders returned. Do not use this as the
+ // default value of the menu_masks variable to avoid building such a big
+ // array.
+ if (!$masks) {
+ $masks = range(511, 1);
+ }
// Only examine patterns that actually exist as router items (the masks).
foreach ($masks as $i) {
if ($i > $end) {