comparison audioDB.cpp @ 313:f9dde18f556a

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.
author mas01mc
date Sat, 09 Aug 2008 15:46:42 +0000
parents 00cb98315f8c
children b671a46873c2
comparison
equal deleted inserted replaced
312:00cb98315f8c 313:f9dde18f556a
86 try { 86 try {
87 isServer = 1; // FIXME: Hack 87 isServer = 1; // FIXME: Hack
88 processArgs(argc, argv); 88 processArgs(argc, argv);
89 assert(O2_ACTION(COM_QUERY)); 89 assert(O2_ACTION(COM_QUERY));
90 query(dbName, inFile, adbQueryResponse); 90 query(dbName, inFile, adbQueryResponse);
91 unmap_tables();
92 } catch(char *err) { 91 } catch(char *err) {
93 cleanup(); 92 cleanup();
94 throw(err); 93 throw(err);
95 } 94 }
96 } 95 }
104 status(dbName, adbStatusResponse); 103 status(dbName, adbStatusResponse);
105 } catch(char *err) { 104 } catch(char *err) {
106 cleanup(); 105 cleanup();
107 throw(err); 106 throw(err);
108 } 107 }
109 }
110
111 void audioDB::unmap_tables(){
112 if(indata)
113 munmap(indata,statbuf.st_size);
114 if(db)
115 munmap(db,getpagesize());
116 if(fileTable)
117 munmap(fileTable, fileTableLength);
118 if(trackTable)
119 munmap(trackTable, trackTableLength);
120 if(dataBuf)
121 munmap(dataBuf, dataBufLength);
122 if(timesTable)
123 munmap(timesTable, timesTableLength);
124 if(l2normTable)
125 munmap(l2normTable, l2normTableLength);
126 if(trackOffsetTable)
127 delete trackOffsetTable;
128 } 108 }
129 109
130 void audioDB::cleanup() { 110 void audioDB::cleanup() {
131 cmdline_parser_free(&args_info); 111 cmdline_parser_free(&args_info);
132 if(indata) 112 if(indata)