diff options
Diffstat (limited to 'includes')
-rw-r--r-- | includes/theme.inc | 9 |
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']) : ''; } /** |