In PHP 5.4, If you change only the options of a menu link and try to save it back it doesn't save. Also, the code checking for this throws a notice.
Refactor the checking code to avoid the notice and fix the problem (same code does it). Or decide we dont care about the bug and slap a @ in front of the array_intersect_assoc. The first is attached.
array_intersect_assoc() call with
array_intersect_key() to properly handle the multi-dimensional components of a menu link array.
A test is needed.
If the testbot runs PHP 5.4, existing tests are sufficient. If not, no test is possible.
User interface changes
Previously changing options of a menu link followed by a menu_link_save didnt save. Now it does.
(Not sure if this is still true with the latest patch, but at least the PHP 5.4 notice is gone.)