diff --git a/reordering/ConnectedComponents.cpp b/reordering/ConnectedComponents.cpp index 0c33f39..fc8a64a 100644 --- a/reordering/ConnectedComponents.cpp +++ b/reordering/ConnectedComponents.cpp @@ -323,6 +323,8 @@ void findConnectedComponents_( delete[] rootToComp; if (nodesToFind) delete[] nodesToFind; + + delete[] p; } void findConnectedComponents( diff --git a/reordering/RCM.cpp b/reordering/RCM.cpp index 3672b64..2859e3f 100644 --- a/reordering/RCM.cpp +++ b/reordering/RCM.cpp @@ -697,7 +697,7 @@ void CSR::getRCMPermutation(int *perm, int *inversePerm, bool pseudoDiameterSour int numOfComponents; int *compToRoot, *compSizes, *compSizePrefixSum; - int *nodesSortedByComp; + int *nodesSortedByComp=NULL; double timeConnectedComponents = -omp_get_wtime(); findConnectedComponents( @@ -945,6 +945,11 @@ void CSR::getRCMPermutation(int *perm, int *inversePerm, bool pseudoDiameterSour delete[] write_offset; delete[] prefixSum_array; + if(nodesSortedByComp) + { + delete[] nodesSortedByComp; + } + #if 0 printf("num of connected components = %d (singleton = %d, twin = %d, large (>=%d) = %d)\n", numOfComponents, singletonCnt, twinCnt, PAR_THR, largeCompCnt); printf("connectedComponentTime = %f\n", timeConnectedComponents);