c4559e7ed9e720d0101ac6839cd1772a611b44d1 braney Mon Apr 27 16:07:25 2026 -0700 hgTracks: emit printTrackTiming() on the trackImgOnly fast path, refs #37445 When hgTracks is called with hgt.trackImgOnly=1 and !ideogramToo it takes an early-return path at hgTracks.c:9469 that emits the image and map but skipped the per-track timing block. With measureTiming=1 set, emit printTrackTiming() before returning so per-track load/draw times are available to clients of the JS-redraw fast path. Co-Authored-By: Claude Opus 4.7 (1M context) diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 1d225e1dec2..4e2a4b4d710 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -9459,30 +9459,32 @@ { struct track *ideoTrack = chromIdeoTrack(window->trackList); if (ideoTrack) { ideoTrack->limitedVisSet = TRUE; ideoTrack->limitedVis = tvHide; /* Don't draw in main gif. */ } } } if (trackImgOnly && !ideogramToo) { // right-click to change viz makeActiveImage(trackList, psOutput); fflush(stdout); + if (measureTiming) + printTrackTiming(); return; // bail out b/c we are done } if (!hideControls) { /* set white-space to nowrap to prevent buttons from wrapping when screen is * narrow */ hPrintf("
\n"); printMenuBar(); //menuBarAppendExtTools(); /* Show title */ freezeName = hFreezeFromDb(database); if(freezeName == NULL) freezeName = "Unknown";