cd40e92bef563b1581ea25e4842c884bf5b32efd
braney
  Mon Jan 15 13:18:03 2024 -0800
limit maxItems to maxItemsPerRow (1,000).   Use one million for the
number of items to request from a bigBed file

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 61532b2..0aca981 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -800,31 +800,36 @@
  * function pointers with if we have nothing to do. */
 void tgLoadNothing(struct track *tg){}
 void tgFreeNothing(struct track *tg){}
 int tgItemNoStart(struct track *tg, void *item) {return -1;}
 int tgItemNoEnd(struct track *tg, void *item) {return -1;}
 
 int tgFixedItemHeight(struct track *tg, void *item)
 /* Return item height for fixed height track. */
 {
 return tg->lineHeight;
 }
 
 int maximumTrackItems(struct track *tg)
 /* Return the maximum number of items allowed in track. */
 {
-return trackDbFloatSettingOrDefault(tg->tdb, "maxItems", maxItemsInFullTrack);
+unsigned int maxItems = trackDbFloatSettingOrDefault(tg->tdb, "maxItems", maxItemsInFullTrack);
+
+if (maxItems > maxItemsInFullTrack)
+    maxItems = maxItemsInFullTrack;
+
+return maxItems;
 }
 
 int maximumTrackHeight(struct track *tg)
 /* Return the maximum track height allowed in pixels. */
 {
 int maxItems = maximumTrackItems(tg);
 return maxItems * tl.fontHeight;
 }
 
 static int maxItemsToOverflow(struct track *tg)
 /* Return the maximum number of items to allow overflow indication. */
 {
 int answer = maxItemsToUseOverflowDefault;
 char *maxItemsString = trackDbSetting(tg->tdb, "maxItemsToOverflow");
 if (maxItemsString != NULL)