changeset 315:d2c56d4f841e

Fixed memory leak in query_loop_points(). Was causing memalloc failure on multiple WS queries with lsh_exact flag on
author mas01mc
date Tue, 12 Aug 2008 14:25:51 +0000
parents b671a46873c2
children 25572f1bd37f c93be2f3a674
files Makefile query.cpp
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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
 
--- 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