minor cleanup, ready for release
[RBC.git] / rbc.cu
diff --git a/rbc.cu b/rbc.cu
index 3237fe1..c0494e6 100644 (file)
--- a/rbc.cu
+++ b/rbc.cu
@@ -58,6 +58,7 @@ void queryRBC(const matrix q, const rbcStruct rbcS, unint *NNs, real* NNdists){
   computeNNs(rbcS.dx, rbcS.dxMap, dq, dqMap, dcP, NNs, NNdists, compLength);
   
   free(qMap);
+  cudaFree(dqMap);
   freeCompPlan(&dcP);
   cudaFree(dq.mat);
   free(cM.mat);
@@ -132,7 +133,7 @@ void buildRBC(const matrix x, rbcStruct *rbcS, unint numReps, unint s){
   xmap.r=numReps; xmap.pr=PAD(numReps); xmap.c=s; xmap.pc=xmap.ld=PAD(s);
   xmap.mat = (unint*)calloc( xmap.pr*xmap.pc, sizeof(*xmap.mat) );
   copyAndMoveI(&rbcS->dxMap, &xmap);
-  rbcS->groupCount = (uint*)calloc( PAD(numReps), sizeof(*rbcS->groupCount) );
+  rbcS->groupCount = (unint*)calloc( PAD(numReps), sizeof(*rbcS->groupCount) );
   
   //Figure out how much fits into memory
   size_t memFree, memTot;
@@ -420,6 +421,11 @@ void initCompPlan(compPlan *dcP, charMatrix cM, unint *groupCountQ, unint *group
   checkErr( cudaMalloc( (void**)&dcP->qGroupToXGroup, sQGroupToXGroup*sizeof(*dcP->qGroupToXGroup) ) );
   cudaMemcpy( dcP->qGroupToXGroup, cP.qGroupToXGroup, sQGroupToXGroup*sizeof(*dcP->qGroupToXGroup), cudaMemcpyHostToDevice );
   dcP->ld = cP.ld;
+
+  free(cP.numGroups);
+  free(cP.groupCountX);
+  free(cP.qToQGroup);
+  free(cP.qGroupToXGroup);
 }