06a9e368b9b085df0c78c5391decbd1ced9da8b6
tdreszer
  Thu Jul 28 16:23:17 2011 -0700
Cleaned up the tdbExtras a little.  Jim recommended always allocating.  Currently leaving in an assert, but will remove it on next check-in
diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index 3fabf09..1240857 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -3583,30 +3583,32 @@
 for (tdb = tdbList; tdb != NULL; tdb = tdb->next)
     {
     if (parent != NULL)
         {
         if (tdbIsMultiTrack(parent))
             tdbMarkAsMultiTrackChild(tdb);
 
         if (tdbIsComposite(parent) || (parent->parent != NULL && tdbIsComposite(parent->parent)))
             {
             if (tdb->subtracks == NULL)
                 tdbMarkAsCompositeChild(tdb);
             else
                tdbMarkAsCompositeView(tdb);
             }
         }
+    if(tdb->tdbExtras == NULL) // probably assertable, but don't make a repeat call harmful
+        tdb->tdbExtras = tdbExtrasNew();
     trackDbContainerMarkup(tdb, tdb->subtracks);
     }
 }
 
 
 static struct trackDb *pruneEmpties(struct trackDb *tdbList, char *db,
 	boolean privateHost, int level)
 /* Remove tracks without data.  For parent tracks data in any child is sufficient to keep
  * them alive. */
 {
 struct trackDb *newList = NULL, *tdb, *next;
 for (tdb = tdbList; tdb != NULL; tdb = next)
     {
     next = tdb->next;
     if (tdb->subtracks != NULL)