b8df1e3542f8439bacedf288bac233de5ff793d0 braney Thu Feb 21 14:53:03 2013 -0800 I added an errAbort for the two cases that assume the hash is initialized (trackHubAssemblyField and trackHubDbDbFromAssemblyDb) (from code review #10237) diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c index 4d60d15..9201664 100644 --- src/hg/lib/trackHub.c +++ src/hg/lib/trackHub.c @@ -89,58 +89,62 @@ boolean trackHubDatabase(char *database) /* Is this an assembly from an Assembly Data hub? */ { if (hubAssemblyHash == NULL) return FALSE; struct hashEl *hel = hashLookup(hubAssemblyHash, database); if (hel == NULL) return FALSE; return TRUE; } char *trackHubAssemblyField(char *database, char *field) /* Get data field from a assembly data hub. */ { +if (hubAssemblyHash == NULL) + errAbort("requesting hub assembly field with no hubs loaded"); struct hashEl *hel = hashLookup(hubAssemblyHash, database); if (hel == NULL) return NULL; struct trackHubGenome *genome = hel->val; char *ret = hashFindVal(genome->settingsHash, field); return cloneString(ret); } static struct dbDb *makeDbDbFromAssemblyGenome(struct trackHubGenome *hubGenome) /* Make a dbdb struture from a single assembly hub database. */ { struct dbDb *db; AllocVar(db); db->genome = cloneString(hubGenome->organism); db->organism = cloneString(hubGenome->organism); db->name = cloneString(hubGenome->name); db->active = TRUE; db->description = cloneString(hubGenome->description); return db; } struct dbDb *trackHubDbDbFromAssemblyDb(char *database) /* Return a dbDb structure for just this database. */ { +if (hubAssemblyHash == NULL) + errAbort("requesting hub assembly dbDb with no hubs loaded"); struct hashEl *hel = hashLookup(hubAssemblyHash, database); if (hel == NULL) return NULL; struct trackHubGenome *genome = hel->val; return makeDbDbFromAssemblyGenome(genome); } struct slPair *trackHubGetCladeLabels() /* Get a list of labels describing the loaded assembly data hubs. */ { if (globalAssemblyHubList == NULL) return NULL; struct slPair *clade, *cladeList = NULL;