diff options
Diffstat (limited to 'includes/theme.inc')
-rw-r--r-- | includes/theme.inc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/includes/theme.inc b/includes/theme.inc index 4a3acecb9..a5aab93ea 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -159,11 +159,15 @@ function list_theme_engines($refresh = FALSE) { * An HTML string that generates the themed output. */ function theme() { + static $functions; $args = func_get_args(); $function = array_shift($args); - if ($func = theme_get_function($function)) { - return call_user_func_array($func, $args); + if (!isset($functions[$function])) { + $functions[$function] = theme_get_function($function); + } + if ($functions[$function]) { + return call_user_func_array($functions[$function], $args); } } |