e9850e19c91eb247cec5ab3204b2ac000dcbecaf
jcasper
  Wed Jun 1 09:42:35 2016 -0700
Don't load oreganno info when track isn't on; it hurts the RR, refs #17278

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 7103555..48c486e 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -1987,30 +1987,31 @@
         }
     }
 if (tmpAttr == TRUE)
     oregannoAttrFree(&attr);
 return FALSE;
 }
 
 void loadOreganno (struct track *tg)
 /* loads the oreganno track */
 {
 struct oreganno *list = NULL;
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlResult *sr;
 char **row;
 int rowOffset;
+tg->attrTable = oregannoLoadAttrHash(conn);
 
 sr = hRangeQuery(conn, tg->table, chromName, winStart, winEnd,
                  NULL, &rowOffset);
 while ((row = sqlNextRow(sr)) != NULL)
     {
     struct oreganno *el = oregannoLoad(row);
     if (!oregannoFilterType(el, tg->attrTable))
         oregannoFree(&el);
     else
         slAddHead(&list, el);
     }
 sqlFreeResult(&sr);
 slReverse(&list);
 tg->items = list;
 hFreeConn(&conn);
@@ -12307,31 +12308,31 @@
 
 void protVarMethods (struct track *tg)
 /* name vs id, next items */
 {
 tg->loadItems = loadProtVar;
 tg->itemName = protVarName;
 tg->mapItemName = protVarMapName;
 tg->nextItemButtonable = TRUE;
 tg->nextPrevItem = linkedFeaturesLabelNextPrevItem;
 }
 
 void oregannoMethods (struct track *tg)
 /* load so can allow filtering on type */
 {
 struct sqlConnection *conn = hAllocConn(database);
-tg->attrTable = oregannoLoadAttrHash(conn);
+tg->attrTable = NULL;
 hFreeConn(&conn);
 tg->loadItems = loadOreganno;
 tg->itemColor = oregannoColor;
 tg->itemNameColor = oregannoColor;
 tg->nextItemButtonable = TRUE;
 tg->nextPrevItem = linkedFeaturesLabelNextPrevItem;
 }
 
 
 static char *omimGene2DisorderList(char *name)
 /* Return list of disorders associated with a OMIM entry.  Do not free result! */
 {
 static struct dyString *dy = NULL;
 struct sqlConnection *conn;
 char query[256];