565ac9d3328f0be9631e61787e82c4768e96a963
max
  Sun Oct 4 10:46:30 2026 -0700
quickLift: note that pslWithoutEmptyBlocks is dead code since #38300, refs #38249

diff --git src/hg/lib/quickLift.c src/hg/lib/quickLift.c
index 133d841df4f..e0d126789e4 100644
--- src/hg/lib/quickLift.c
+++ src/hg/lib/quickLift.c
@@ -660,31 +660,34 @@
 lifted->qSize /= 3;
 lifted->qBaseInsert /= 3;
 for (i = 0; i < lifted->blockCount; i++)
     {
     lifted->blockSizes[i] /= 3;
     lifted->qStarts[i] /= 3;
     }
 return TRUE;
 }
 
 static struct psl *pslWithoutEmptyBlocks(struct psl *psl)
 /* A copy of a protein alignment with its zero-length blocks taken out, or NULL if it has
  * none.  The copy can be left with no blocks at all.  The UniProt bigPsl files store block sizes in bases, and a block shorter than a
  * codon comes out of pslFromBigPsl with size 0.  Drawing does not mind, but pslTransMap
  * checks the alignment after converting it to nucleotides and aborts on the empty block,
- * which takes down every item in the track.  About one alignment in eight has one. */
+ * which takes down every item in the track.  About one alignment in eight has one.
+ *
+ * Dead since #38300: the UniProt files no longer declare amino acid coordinates, so
+ * pslFromBigPsl stops dividing their block sizes by three and none come out empty. */
 {
 int i, j;
 
 for (i = 0; i < psl->blockCount; i++)
     if (psl->blockSizes[i] == 0)
         break;
 if (i == psl->blockCount)
     return NULL;
 
 struct psl *copy = pslClone(psl);
 for (i = 0, j = 0; i < copy->blockCount; i++)
     {
     if (copy->blockSizes[i] == 0)
         continue;
     copy->blockSizes[j] = copy->blockSizes[i];