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.