diff -u b/core/modules/field_ui/lib/Drupal/field_ui/Form/FieldInstanceEditForm.php b/core/modules/field_ui/lib/Drupal/field_ui/Form/FieldInstanceEditForm.php --- b/core/modules/field_ui/lib/Drupal/field_ui/Form/FieldInstanceEditForm.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/Form/FieldInstanceEditForm.php @@ -181,6 +181,7 @@ // value' gets validated using the instance settings being submitted. $field_name = $this->instance['field_name']; $entity = $form['#entity']; + $field = $this->instance->getField(); if (isset($form['instance']['default_value_widget'])) { $element = $form['instance']['default_value_widget']; @@ -189,15 +190,13 @@ $items = array(); $this->instance->getWidget()->extractFormValues($entity, LANGUAGE_NOT_SPECIFIED, $items, $element, $form_state); - // Grab the field definition from $form_state. + // Get the field state. $field_state = field_form_get_state($element['#parents'], $field_name, LANGUAGE_NOT_SPECIFIED, $form_state); - $field_definition = $field_state['field_definition']; // Validate the value. $errors = array(); - $function = $field_definition['module'] . '_field_validate'; + $function = $field['module'] . '_field_validate'; if (function_exists($function)) { - $field = field_info_field($field_name); $function(NULL, $field, $this->instance, LANGUAGE_NOT_SPECIFIED, $items, $errors); }