summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/menu.inc17
1 files changed, 9 insertions, 8 deletions
diff --git a/includes/menu.inc b/includes/menu.inc
index 3a3ef9306..1e6f13445 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -1225,28 +1225,29 @@ function menu_tree_data(array $links, array $parents = array(), $depth = 1) {
* the next menu link.
*/
function _menu_tree_data(&$links, $parents, $depth) {
- $done = FALSE;
$tree = array();
- while (!$done && $item = array_pop($links)) {
+ while ($item = array_pop($links)) {
// We need to determine if we're on the path to root so we can later build
// the correct active trail and breadcrumb.
$item['in_active_trail'] = in_array($item['mlid'], $parents);
- // Look ahead to the next link, but leave it on the array so it's available
- // to other recursive function calls if we return or build a sub-tree.
- $next = end($links);
// Add the current link to the tree.
$tree[$item['mlid']] = array(
'link' => $item,
'below' => array(),
);
+ // Look ahead to the next link, but leave it on the array so it's available
+ // to other recursive function calls if we return or build a sub-tree.
+ $next = end($links);
// Check whether the next link is the first in a new sub-tree.
if ($next && $next['depth'] > $depth) {
// Recursively call _menu_tree_data to build the sub-tree.
$tree[$item['mlid']]['below'] = _menu_tree_data($links, $parents, $next['depth']);
+ // Fetch next link after filling the sub-tree.
+ $next = end($links);
}
- else {
- // Determine if we should exit the loop and return.
- $done = (!$next || $next['depth'] < $depth);
+ // Determine if we should exit the loop and return.
+ if (!$next || $next['depth'] < $depth) {
+ break;
}
}
return $tree;