summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/theme.inc9
1 files changed, 6 insertions, 3 deletions
diff --git a/includes/theme.inc b/includes/theme.inc
index 0bea6fa9a..cb4ca3417 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -2288,9 +2288,12 @@ function template_process(&$variables, $hook) {
$variables['classes'] = implode(' ', $variables['classes_array']);
// Flatten out attributes, title_attributes, and content_attributes.
- $variables['attributes'] = drupal_attributes($variables['attributes_array']);
- $variables['title_attributes'] = drupal_attributes($variables['title_attributes_array']);
- $variables['content_attributes'] = drupal_attributes($variables['content_attributes_array']);
+ // Because this function can be called very often, and often with empty
+ // attributes, optimize performance by only calling drupal_attributes() if
+ // necessary.
+ $variables['attributes'] = $variables['attributes_array'] ? drupal_attributes($variables['attributes_array']) : '';
+ $variables['title_attributes'] = $variables['title_attributes_array'] ? drupal_attributes($variables['title_attributes_array']) : '';
+ $variables['content_attributes'] = $variables['content_attributes_array'] ? drupal_attributes($variables['content_attributes_array']) : '';
}
/**