6c7ec2372bbbe86971f9c86d2e22a36c3f40a46a galt Wed Mar 9 12:07:30 2016 -0800 Fixes #16982. nextItem was crashing for custom track big* diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 03a76f6..3ba902a 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -7035,36 +7035,41 @@ cartRemove(cart, "hgt.trackNameFilter"); // restore if (saveTrackNameFilter) { cartSetString(cart, "hgt.trackNameFilter", saveTrackNameFilter); } trackList = saveTrackList; groupList = saveGroupList; return returnTrackList; } void doNextPrevItem(boolean goNext, char *trackName) /* In case a next item arrow was clicked on a track, change */ /* position (i.e. winStart, winEnd, etc.) based on what track it was */ { -// create custom trackList with just trackName +// create new trackList with just trackName struct track *myTrackList = getTrackListForOneTrack(trackName); struct track *track = trackFindByName(myTrackList, trackName); if ((track != NULL) && (track->nextPrevItem != NULL)) + { + // custom track big* tracks have pre-opened handle which we should not use + // because that same bbiFile will get used later in the full track list + track->bbiFile = NULL; track->nextPrevItem(track, goNext); } +} void findBestEMGeneTable(struct track *myTrackList) /* Find the best gene table to use for exonMostly and geneMostly. */ { // TODO add support for choosing any gene table of type genePred, genePreExt, bigGenePred // TODO add support for assembly hubs if (trackHubDatabase(database)) // assembly hub? not supported yet return; // any table-name matches might just be coincidence in an assembly hub // although the hub_ prefix on the track name would help prevent name collisions. char *orderedTables[] = {"knownGene", "refGene", "ensGene", "flybaseGene", "sangerGene", "augustusGene", "genscan"};