From f5ae1081808275ec22535ac53b3b96094329925d Mon Sep 17 00:00:00 2001
From: James Silver <jamsilver@gmail.com>
Date: Tue, 12 Apr 2011 16:40:07 +0100
Subject: [PATCH] Pass field to autocomplete validation. 1124916

---
 node_reference/node_reference.module |    8 +++++---
 user_reference/user_reference.module |    6 ++++--
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/node_reference/node_reference.module b/node_reference/node_reference.module
index 12a26bc..874c9c0 100644
--- a/node_reference/node_reference.module
+++ b/node_reference/node_reference.module
@@ -522,6 +522,8 @@ function node_reference_field_widget_form(&$form, &$form_state, $field, $instanc
         '#autocomplete_path' => $instance['widget']['settings']['autocomplete_path'] . '/' . $instance['entity_type'] . '/' . $field['field_name'],
         '#size' => $instance['widget']['settings']['size'],
         '#element_validate' => array('node_reference_autocomplete_validate'),
+        '#field' => $field,
+        '#instance' => $instance,
         '#value_callback' => 'node_reference_autocomplete_value',
       );
       break;
@@ -559,9 +561,9 @@ function node_reference_autocomplete_value($element, $input = FALSE, $form_state
  * Validation callback for a node_reference autocomplete element.
  */
 function node_reference_autocomplete_validate($element, &$form_state, $form) {
-  $field = $form_state['field'][$element['#field_name']][$element['#language']]['field'];
-  $instance = $form_state['field'][$element['#field_name']][$element['#language']]['instance'];
-
+  $field = $element['#field'];
+  $instance = $element['#instance'];
+  
   $value = $element['#value'];
   $nid = NULL;
 
diff --git a/user_reference/user_reference.module b/user_reference/user_reference.module
index 4d199df..c84b8e1 100644
--- a/user_reference/user_reference.module
+++ b/user_reference/user_reference.module
@@ -365,6 +365,8 @@ function user_reference_field_widget_form(&$form, &$form_state, $field, $instanc
         '#autocomplete_path' => $instance['widget']['settings']['autocomplete_path'] . '/' . $field['field_name'],
         '#size' => $instance['widget']['settings']['size'],
         '#element_validate' => array('user_reference_autocomplete_validate'),
+        '#field' => $field,
+        '#instance' => $instance,
         '#value_callback' => 'user_reference_autocomplete_value',
       );
       break;
@@ -401,8 +403,8 @@ function user_reference_autocomplete_value($element, $input = FALSE, $form_state
  * Validation callback for a user_reference autocomplete element.
  */
 function user_reference_autocomplete_validate($element, &$form_state, $form) {
-  $field = $form_state['field'][$element['#field_name']][$element['#language']]['field'];
-  $instance = $form_state['field'][$element['#field_name']][$element['#language']]['instance'];
+  $field = $element['#field'];
+  $instance = $element['#instance'];
 
   $value = $element['#value'];
   $uid = NULL;
-- 
1.7.1

