From 1b521566bb9777c177e1d89eb6091d946ff300f0 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Tue, 29 Dec 2009 20:16:09 +0000 Subject: - Patch #437018 by JamesAn: convert form_options_flatten() in form.inc to use new static caching API. --- includes/form.inc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'includes/form.inc') 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; -- cgit v1.2.3