834f46edc09af6e2b82bad2021629615a678221b braney Wed Nov 15 11:45:33 2023 -0800 bigBed items that match hgFind.matches automatically pass filters (this time pay attention to bbi->definedFieldCount to make sure there is a name field. diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index fe957c1..e6df559 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -7739,31 +7739,31 @@ return; } struct trackDb *decoratorTdb = getTdbForDecorator(track->tdb); struct bigBedFilter *filters = bigBedBuildFilters(cart, bbi, decoratorTdb); struct lm *lm = lmInit(0); struct bigBedInterval *result = bigBedIntervalQuery(bbi, chromName, winStart, winEnd, 0, lm); struct mouseOverScheme *mouseScheme = mouseOverSetupForBbi(decoratorTdb, bbi); // insert resulting entries into track->decorators, leaving room for having multiple sources applied // to the same track in the future. if (track->decoratorGroup == NULL) track->decoratorGroup = newDecoratorGroup(); -struct decorator* newDecorators = decoratorListFromBbi(decoratorTdb, chromName, result, filters, bbi->fieldCount, mouseScheme); +struct decorator* newDecorators = decoratorListFromBbi(decoratorTdb, chromName, result, filters, bbi, mouseScheme); track->decoratorGroup->decorators = slCat(track->decoratorGroup->decorators, newDecorators); for (struct decorator *d = track->decoratorGroup->decorators; d != NULL; d = d->next) d->group = track->decoratorGroup; lmCleanup(&lm); bigBedFileClose(&bbi); } static void *remoteParallelLoad(void *threadParam) /* Each thread loads tracks in parallel until all work is done. */ { pthread_t *pthread = threadParam; struct paraFetchData *pfd = NULL; pthread_detach(*pthread); // this thread will never join back with it's progenitor // Canceled threads that might leave locks behind, // so the theads are detached and will be neither joined nor canceled.