? 371235-patched-benchmarks.txt
? 371235-unpatched-benchmarks.txt
? sites/all/modules/cvs
Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.320
diff -u -p -r1.320 form.inc
--- includes/form.inc	3 Feb 2009 18:55:29 -0000	1.320
+++ includes/form.inc	23 Feb 2009 06:37:20 -0000
@@ -513,19 +513,14 @@ function drupal_prepare_form($form_id, &
   }
 
   $form += element_info('form');
-  $form += array('#tree' => FALSE, '#parents' => array());
+  $form += array('#tree' => FALSE, '#parents' => array(), '#validate' => array(), '#submit' => array());
 
-  if (!isset($form['#validate'])) {
-    if (drupal_function_exists($form_id . '_validate')) {
-      $form['#validate'] = array($form_id . '_validate');
-    }
+  // Add default validate and submit handlers so they can be altered.
+  if (drupal_function_exists($form_id . '_validate')) {
+    array_unshift($form['#validate'], $form_id . '_validate');
   }
-
-  if (!isset($form['#submit'])) {
-    if (drupal_function_exists($form_id . '_submit')) {
-      // We set submit here so that it can be altered.
-      $form['#submit'] = array($form_id . '_submit');
-    }
+  if (drupal_function_exists($form_id . '_submit')) {
+    array_unshift($form['#submit'], $form_id . '_submit');
   }
 
   // Normally, we would call drupal_alter($form_id, $form, $form_state).
