b7e9dd0d463ab03a94586c7fa6bdff6564f1b73b tdreszer Fri Jun 10 13:44:05 2011 -0700 Simple bullet-proofing against tdb->table being empty. diff --git src/hg/hgText/hgText.c src/hg/hgText/hgText.c index a71da3e..4e54b2b 100644 --- src/hg/hgText/hgText.c +++ src/hg/hgText/hgText.c @@ -574,30 +574,32 @@ struct trackDb *trackList = hTrackDb(NULL), *t; char *value = cartCgiUsualString(cart, varName, NULL); int trackCount = slCount(trackList); char **trackLabels, **trackNames; char *selected = NULL; char chrN_track[256]; char tbl[256]; int i; AllocArray(trackLabels, trackCount+1); AllocArray(trackNames, trackCount+1); trackLabels[0] = "Browser tracks"; trackNames[0] = "Choose table"; for (t = trackList, i=1; t != NULL; t = t->next, ++i) { + if (tdbIsDownloadsOnly(tdb) || tdb->table == NULL) // Don't bother with downloadsOnly for now + continue; trackLabels[i] = t->shortLabel; safef(chrN_track, sizeof(chrN_track), "%s_%s", hDefaultChrom(), t->table); if (hTableExists(chrN_track)) safef(tbl, sizeof(tbl), "%s.chrN_%s", database, t->table); else safef(tbl, sizeof(tbl), "%s.%s", database, t->table); trackNames[i] = cloneString(tbl); if (value != NULL && sameString(value, tbl)) selected = trackNames[i]; } if (selected == NULL) selected = trackNames[0]; cgiMakeDropListFull(varName, trackLabels, trackNames, trackCount+1, selected, javascript);