summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/theme.inc8
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);
}
}