f1464a78ed45c0f2c2c47112d5ec0585e875208e braney Tue Oct 30 15:01:29 2018 -0700 some optimizations to speed up trackDb loads on huge hubs diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c index df5dfcdc..5b44bb9 100644 --- src/hg/hgTracks/simpleTracks.c +++ src/hg/hgTracks/simpleTracks.c @@ -10851,39 +10851,43 @@ * composite tdb's): */ struct trackDb *subTdb= getSubtrackTdb(subtrack); if ((setting = trackDbLocalSetting(subTdb, "parent")) != NULL) { if (chopLine(cloneString(setting), words) >= 2) if (sameString(words[1], "off")) enabled = FALSE; } return enabled; } bool isSubtrackVisible(struct track *subtrack) /* Has this subtrack not been deselected in hgTrackUi or declared with * "subTrack ... off"? -- assumes composite track is visible. */ { +if (subtrack->subTrackVisSet) + return subtrack->subTrackVis; boolean overrideComposite = (NULL != cartOptionalString(cart, subtrack->track)); if (subtrack->limitedVisSet && subtrack->limitedVis == tvHide) return FALSE; bool enabledInTdb = subtrackEnabledInTdb(subtrack); char option[SMALLBUF]; safef(option, sizeof(option), "%s_sel", subtrack->track); boolean enabled = cartUsualBoolean(cart, option, enabledInTdb); if (overrideComposite) enabled = TRUE; +subtrack->subTrackVisSet = TRUE; +subtrack->subTrackVis = enabled; return enabled; } static int subtrackCount(struct track *trackList) /* Count the number of visible subtracks in (sub)trackList. */ { struct track *subtrack; int ct = 0; for (subtrack = trackList; subtrack; subtrack = subtrack->next) if (isSubtrackVisible(subtrack)) ct++; return ct; } enum trackVisibility limitVisibility(struct track *tg)