# HG changeset patch # User mas01mc # Date 1218296802 0 # Node ID f9dde18f556a25c9f41b9e84f729e61d9e5999db # Parent 00cb98315f8c31bd0d9361a5ba201b50e8e61b41 Check for index-exists on WS --load_index and exit if it does not. Revert unmap_tables because cleanup() did it fine, but there is a memory leak in ws_query calls. diff -r 00cb98315f8c -r f9dde18f556a audioDB.cpp --- a/audioDB.cpp Sat Aug 09 15:17:01 2008 +0000 +++ b/audioDB.cpp Sat Aug 09 15:46:42 2008 +0000 @@ -88,7 +88,6 @@ processArgs(argc, argv); assert(O2_ACTION(COM_QUERY)); query(dbName, inFile, adbQueryResponse); - unmap_tables(); } catch(char *err) { cleanup(); throw(err); @@ -108,25 +107,6 @@ } } -void audioDB::unmap_tables(){ - if(indata) - munmap(indata,statbuf.st_size); - if(db) - munmap(db,getpagesize()); - if(fileTable) - munmap(fileTable, fileTableLength); - if(trackTable) - munmap(trackTable, trackTableLength); - if(dataBuf) - munmap(dataBuf, dataBufLength); - if(timesTable) - munmap(timesTable, timesTableLength); - if(l2normTable) - munmap(l2normTable, l2normTableLength); - if(trackOffsetTable) - delete trackOffsetTable; -} - void audioDB::cleanup() { cmdline_parser_free(&args_info); if(indata) diff -r 00cb98315f8c -r f9dde18f556a audioDB.h --- a/audioDB.h Sat Aug 09 15:17:01 2008 +0000 +++ b/audioDB.h Sat Aug 09 15:46:42 2008 +0000 @@ -284,7 +284,6 @@ audioDB(const unsigned argc, char* const argv[], adb__queryResponse *adbQueryResponse); audioDB(const unsigned argc, char* const argv[], adb__statusResponse *adbStatusResponse); void cleanup(); - void unmap_tables(); ~audioDB(); int processArgs(const unsigned argc, char* const argv[]); void get_lock(int fd, bool exclusive); diff -r 00cb98315f8c -r f9dde18f556a soap.cpp --- a/soap.cpp Sat Aug 09 15:17:01 2008 +0000 +++ b/soap.cpp Sat Aug 09 15:46:42 2008 +0000 @@ -252,6 +252,9 @@ { fprintf(stderr, "Socket connection successful: master socket = %d\n", m); // Make a global Web Services LSH Index (SINGLETON) + if(WS_load_index && dbName && !index_exists(dbName, radius, sequenceLength)){ + error("Can't find requested index file:", index_get_name(dbName,radius,sequenceLength)); + } if(WS_load_index && dbName && index_exists(dbName, radius, sequenceLength)){ char* indexName = index_get_name(dbName, radius, sequenceLength); fprintf(stderr, "Loading LSH hashtables: %s...\n", indexName);