# HG changeset patch # User mas01mc # Date 1218551151 0 # Node ID d2c56d4f841ebf3ba797e1478234b82ed3c43427 # Parent b671a46873c2f0fcba3a736c50e8c45051a7f0a1 Fixed memory leak in query_loop_points(). Was causing memalloc failure on multiple WS queries with lsh_exact flag on diff -r b671a46873c2 -r d2c56d4f841e Makefile --- a/Makefile Tue Aug 12 01:21:44 2008 +0000 +++ b/Makefile Tue Aug 12 14:25:51 2008 +0000 @@ -14,7 +14,7 @@ ifeq ($(shell uname),Darwin) ifeq ($(shell sysctl -n hw.optional.x86_64),1) -#override CFLAGS+=-arch x86_64 +override CFLAGS+=-arch x86_64 endif endif diff -r b671a46873c2 -r d2c56d4f841e query.cpp --- a/query.cpp Tue Aug 12 01:21:44 2008 +0000 +++ b/query.cpp Tue Aug 12 14:25:51 2008 +0000 @@ -476,7 +476,7 @@ void audioDB::query_loop_points(double* query, double* qnPtr, double* qpPtr, double meanQdur, Uns32T numVectors){ unsigned int dbVectors; - double *sNorm, *snPtr, *sPower = 0, *spPtr = 0; + double *sNorm = 0, *snPtr, *sPower = 0, *spPtr = 0; double *meanDBdur = 0; // check pre-conditions @@ -530,6 +530,13 @@ } exact_evaluation_queue->pop(); } + // Cleanup + if(sNorm) + delete sNorm; + if(sPower) + delete sPower; + if(meanDBdur) + delete meanDBdur; } // A completely unprotected dot-product method