Mercurial > hg > audiodb
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) |