diff options
Diffstat (limited to 'includes/menu.inc')
-rw-r--r-- | includes/menu.inc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/includes/menu.inc b/includes/menu.inc index d9d164c44..1e17b08a3 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -2197,10 +2197,10 @@ function menu_link_save(&$item) { } // If every value in $existing_item is the same in the $item, there is no // reason to run the update queries or clear the caches. We use - // array_diff_assoc() with the $existing_item as the first parameter - // because $item has additional keys left over from the process of building - // the router item. - if (!$existing_item || array_diff_assoc($existing_item, $item)) { + // array_intersect_assoc() with the $item as the first parameter because + // $item may have additional keys left over from building a router entry. + // The intersect removes the extra keys, allowing a meaningful comparison. + if (!$existing_item || (array_intersect_assoc($item, $existing_item)) != $existing_item) { db_update('menu_links') ->fields(array( 'menu_name' => $item['menu_name'], |