diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-12-29 20:16:09 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-12-29 20:16:09 +0000 |
commit | 1b521566bb9777c177e1d89eb6091d946ff300f0 (patch) | |
tree | 7084605d2cc12f1de7c0bf4e89c61bceb5786cdc | |
parent | f639b9e9658606bb10e921834d8a28abd8180a20 (diff) | |
download | brdo-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.inc | 18 |
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; |