diff --git a/core/includes/common.inc b/core/includes/common.inc index 689d136..457b81b 100644 --- a/core/includes/common.inc +++ b/core/includes/common.inc @@ -6562,7 +6562,7 @@ function element_set_attributes(array &$element, array $map) { * @see drupal_array_set_nested_value() * @see drupal_array_unset_nested_value() */ -function &drupal_array_get_nested_value(array &$array, array $parents, &$key_exists = NULL) { +function drupal_array_get_nested_value(array &$array, array $parents, &$key_exists = NULL) { $ref = &$array; foreach ($parents as $parent) { if (is_array($ref) && array_key_exists($parent, $ref)) { @@ -6570,8 +6570,7 @@ function &drupal_array_get_nested_value(array &$array, array $parents, &$key_exi } else { $key_exists = FALSE; - $null = NULL; - return $null; + return NULL; } } $key_exists = TRUE; diff --git a/core/includes/form.inc b/core/includes/form.inc index 571a439..a431aea 100644 --- a/core/includes/form.inc +++ b/core/includes/form.inc @@ -2180,12 +2180,12 @@ function form_state_values_clean(&$form_state) { // $form_state['values']['foo']['bar'], which is the level where we can // unset 'baz' (that is stored in $last_parent). $parents = $button['#parents']; + $values = &$form_state['values']; $last_parent = array_pop($parents); - $key_exists = NULL; - $values = &drupal_array_get_nested_value($form_state['values'], $parents, $key_exists); - if ($key_exists && is_array($values)) { - unset($values[$last_parent]); + foreach ($parents as $parent) { + $values = &$values[$parent]; } + unset($values[$last_parent]); } }