dbfa5c9cda813297ec034d10037ac91f89ee69d7
jcasper
  Tue Nov 4 21:56:23 2025 -0800
Removing redundant cart cleanup, refs #36320

diff --git src/hg/bigCompositeUpdate/bigCompositeUpdate.c src/hg/bigCompositeUpdate/bigCompositeUpdate.c
index c336aedb46c..cd8e475ab7c 100644
--- src/hg/bigCompositeUpdate/bigCompositeUpdate.c
+++ src/hg/bigCompositeUpdate/bigCompositeUpdate.c
@@ -1,80 +1,79 @@
 // SPDX-License-Identifier: MIT; (c) 2025 Andrew D Smith (author)
 /* bigCompositeUpdate - CGI to update bigComposite track visibilities */
 #include "common.h"
 #include "hash.h"
 #include "jksql.h"
 #include "htmshell.h"
 #include "web.h"
 #include "cheapcgi.h"
 #include "cart.h"
 #include "hui.h"
 
 /* Global Variables */
 struct cart *cart;             /* CGI and other variables */
 struct hash *oldVars = NULL;
 
 void doMiddle(struct cart *theCart) {
   const int buffer_size = 128;
   cart = theCart;
 
   char *mdid = cgiString("mdid");  // metadata id (e.g., mb2 for MethBase2)
   char mdid_dt[buffer_size];
   snprintf(mdid_dt, buffer_size, "%s_%s", mdid, "dt");
   char mdid_de[buffer_size];
   snprintf(mdid_de, buffer_size, "%s_%s", mdid, "de");
   char wc_mdid[buffer_size];
   snprintf(wc_mdid, buffer_size, "*_%s", "mb2");
 
   // clear out previous variables to avoid having to use =0 for
   // non-visible data-type / data set combinations
   cartRemoveLike(cart, wc_mdid);
   cartRemovePrefix(cart, mdid);
 
   struct dyString *cgi_encoded = cgiUrlString();
   struct slName *dt_list = NULL;
   struct slName *de_list = NULL;
   char *raw_cgi = dyStringContents(cgi_encoded);
   char *var = NULL, *val = NULL;
   struct dyString *updated_cgi = newDyString(1024);
   while (cgiParseNext(&raw_cgi, &var, &val)) {
     if (sameWord(var, mdid_dt))
       slAddHead(&dt_list, newSlName(val));
     else if (sameWord(var, mdid_de))
       slAddHead(&de_list, newSlName(val));
     else cgiEncodeIntoDy(var, val, updated_cgi);
   }
 
   char track_name[buffer_size];
   struct slName *de_itr = NULL;
   for (de_itr = de_list; de_itr; de_itr = de_itr->next) {
     struct slName *dt_itr = NULL;
     for (dt_itr = dt_list; dt_itr; dt_itr = dt_itr->next) {
       snprintf(track_name, buffer_size,
 	       "%s_%s_%s_sel", mdid, de_itr->name, dt_itr->name);
       cgiEncodeIntoDy(track_name, "1", updated_cgi);
     }
   }
   cartParseOverHash(cart, dyStringContents(updated_cgi));
   cartRemove(cart, "mdid");  // could clash someday
-  cartCheckout(&cart);
 
   dyStringFree(&cgi_encoded);
   dyStringFree(&updated_cgi);
 
   // send response: success, and no content
   printf("Status: 204 No Content\r\n");
   printf("\r\n");
   fflush(stdout);
 }
 
 /* Null terminated list of CGI Variables we don't want to save
  * permanently. */
 char *excludeVars[] = {"Submit", "submit", NULL,};
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
   cgiSpoof(&argc, argv);
   cartEmptyShell(doMiddle, hUserCookie(), excludeVars, oldVars);
   return 0;
 }