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)