Index: content.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/ctools/includes/content.inc,v
retrieving revision 1.12.2.3
diff -u -p -r1.12.2.3 content.inc
--- content.inc	21 Oct 2009 21:25:39 -0000	1.12.2.3
+++ content.inc	5 Dec 2009 05:48:45 -0000
@@ -126,7 +126,8 @@ function ctools_get_content_types() {
  *   An array of all subtypes available.
  */
 function ctools_content_get_subtypes($type) {
-  // @todo cache -- multiple calls on the same page can be intensive.
+  static $cache = array();
+
   $subtypes = array();
 
   if (is_array($type)) {
@@ -136,6 +137,10 @@ function ctools_content_get_subtypes($ty
     $plugin = ctools_get_content_type($type);
   }
 
+  if (isset($cache[$plugin['name']])) {
+    return $cache[$plugin['name']];
+  }
+
   if (isset($plugin['content types'])) {
     $function = $plugin['content types'];
     if (is_array($function)) {
@@ -154,6 +159,8 @@ function ctools_content_get_subtypes($ty
     ctools_content_prepare_subtype($subtypes[$id], $plugin);
   }
 
+  $cache[$plugin['name']] = $subtypes;
+
   return $subtypes;
 }
 
