src/hg/instinct/bioInt2/populateDb.c 1.8

1.8 2009/04/27 18:13:34 jsanborn
fixed memory leak
Index: src/hg/instinct/bioInt2/populateDb.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/instinct/bioInt2/populateDb.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -b -B -U 4 -r1.7 -r1.8
--- src/hg/instinct/bioInt2/populateDb.c	27 Apr 2009 06:15:49 -0000	1.7
+++ src/hg/instinct/bioInt2/populateDb.c	27 Apr 2009 18:13:34 -0000	1.8
@@ -693,8 +693,9 @@
 	{
 	struct slDouble *sdList = el->val;
 	slAddTail(&sdList, sd);
 	}
+    freeMem(&name);
     }
 }
 
 boolean reduceDataHash(struct hash *dataHash, double *retMed, double *retStd)
@@ -743,8 +744,9 @@
 
 *retStd = std;
 *retMed = allMedian;
 
+slFreeList(&allSdList);
 return TRUE;
 }
 
 struct analysisVals *getAnalysisVals(struct sqlConnection *biConn, struct hash *dataHash, 
@@ -794,8 +796,9 @@
         av->conf = val; 
 
 	slAddHead(&avList, av);
 	}
+    analysisFeaturesFree(&af);
     hashElFreeList(&elList);
     }
 
 return avList;
@@ -843,21 +846,19 @@
 char **row = NULL;
 while ((row = sqlNextRow(sr)) != NULL)
     {
     struct bed *nb = bedLoadN(row+1, 15);
-
-    char *name        = nb->name; // row[4];
-    unsigned expCount = nb->expCount; //sqlUnsigned(row[13]);
-    float *expScores  = nb->expScores; // row[15];
-
-    struct hashEl *el = hashLookup(gaHash, name);
-    if (!el)
-	continue;
+    struct hashEl *el = hashLookup(gaHash, nb->name);
+    if (el)
+	{
     struct geneAlias *ga = el->val;
     struct slName *sl;
     for (sl = ga->genes; sl; sl = sl->next)
-	addDataToHash(dataHash, sl->name, expCount, expScores, allA);
+	    addDataToHash(dataHash, sl->name, nb->expCount, nb->expScores, allA);
+	}
+    bedFree(&nb);
     }
+sqlFreeResult(&sr);
 
 if (hashNumEntries(dataHash) == 0)
     errAbort("no entries in hash\n");
 
@@ -871,8 +872,9 @@
 
 fprintf(stderr, "\tstoring analysisVals...\n");
 storeAnalysisValsInDb(biConn, dataTable, avList);
 analysisValsFreeList(&avList);
+hashFree(&dataHash);
 }
 
 
 int getProbeId(struct sqlConnection *biConn, char *tableName, char *name)