summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-12-29 20:16:09 +0000
committerDries Buytaert <dries@buytaert.net>2009-12-29 20:16:09 +0000
commit1b521566bb9777c177e1d89eb6091d946ff300f0 (patch)
tree7084605d2cc12f1de7c0bf4e89c61bceb5786cdc
parentf639b9e9658606bb10e921834d8a28abd8180a20 (diff)
downloadbrdo-1b521566bb9777c177e1d89eb6091d946ff300f0.tar.gz
brdo-1b521566bb9777c177e1d89eb6091d946ff300f0.tar.bz2
- Patch #437018 by JamesAn: convert form_options_flatten() in form.inc to use new static caching API.
-rw-r--r--includes/form.inc18
1 files changed, 9 insertions, 9 deletions
diff --git a/includes/form.inc b/includes/form.inc
index ad1587780..e54a7ed80 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -1673,21 +1673,21 @@ function _form_set_value(&$form_values, $element, $parents, $value) {
}
}
-function form_options_flatten($array, $reset = TRUE) {
- // $reset has been ignored here as the function recurses, retaining
- // its value while recursing and resetting itself when called.
- static $return;
+function form_options_flatten($array) {
+ // Always reset static var when first entering the recursion.
+ drupal_static_reset('_form_options_flatten');
+ return _form_options_flatten($array);
+}
- if ($reset) {
- $return = array();
- }
+function _form_options_flatten($array) {
+ $return = &drupal_static(__FUNCTION__);
foreach ($array as $key => $value) {
if (is_object($value)) {
- form_options_flatten($value->option, FALSE);
+ _form_options_flatten($value->option);
}
elseif (is_array($value)) {
- form_options_flatten($value, FALSE);
+ _form_options_flatten($value);
}
else {
$return[$key] = 1;