(svn r23198) -Codechange: introduce a free that takes const pointers so we don't need to cast to void/non-const before being able to free
This commit is contained in:
@@ -30,6 +30,15 @@
|
||||
#include <set>
|
||||
#include <stack>
|
||||
|
||||
/**
|
||||
* Version of the standard free that accepts const pointers.
|
||||
* @param ptr The data to free.
|
||||
*/
|
||||
static inline void free(const void *ptr)
|
||||
{
|
||||
free(const_cast<void *>(ptr));
|
||||
}
|
||||
|
||||
#ifndef PATH_MAX
|
||||
/** The maximum length of paths, if we don't know it. */
|
||||
# define PATH_MAX 260
|
||||
@@ -672,7 +681,7 @@ void ScanFile(const char *filename, const char *ext, bool header, bool verbose)
|
||||
}
|
||||
}
|
||||
if (curfile->second->find(h) == curfile->second->end()) curfile->second->insert(strdup(h));
|
||||
free((void*)h);
|
||||
free(h);
|
||||
}
|
||||
}
|
||||
/* FALL THROUGH */
|
||||
@@ -705,7 +714,7 @@ void ScanFile(const char *filename, const char *ext, bool header, bool verbose)
|
||||
}
|
||||
StringSet::iterator it = defines.find(lexer.GetString());
|
||||
if (it != defines.end()) {
|
||||
free((void*)*it);
|
||||
free(*it);
|
||||
defines.erase(it);
|
||||
}
|
||||
lexer.Lex();
|
||||
@@ -808,7 +817,7 @@ void ScanFile(const char *filename, const char *ext, bool header, bool verbose)
|
||||
|
||||
if (!header) {
|
||||
for (StringSet::iterator it = defines.begin(); it != defines.end(); it++) {
|
||||
free((void*)*it);
|
||||
free(*it);
|
||||
}
|
||||
defines.clear();
|
||||
while (!ignore.empty()) ignore.pop();
|
||||
@@ -940,31 +949,31 @@ int main(int argc, char *argv[])
|
||||
|
||||
for (StringMap::iterator it = _files.begin(); it != _files.end(); it++) {
|
||||
for (StringSet::iterator h = it->second->begin(); h != it->second->end(); h++) {
|
||||
free((void*)*h);
|
||||
free(*h);
|
||||
}
|
||||
it->second->clear();
|
||||
delete it->second;
|
||||
free((void*)it->first);
|
||||
free(it->first);
|
||||
}
|
||||
_files.clear();
|
||||
|
||||
for (StringMap::iterator it = _headers.begin(); it != _headers.end(); it++) {
|
||||
for (StringSet::iterator h = it->second->begin(); h != it->second->end(); h++) {
|
||||
free((void*)*h);
|
||||
free(*h);
|
||||
}
|
||||
it->second->clear();
|
||||
delete it->second;
|
||||
free((void*)it->first);
|
||||
free(it->first);
|
||||
}
|
||||
_headers.clear();
|
||||
|
||||
for (StringSet::iterator it = _defines.begin(); it != _defines.end(); it++) {
|
||||
free((void*)*it);
|
||||
free(*it);
|
||||
}
|
||||
_defines.clear();
|
||||
|
||||
for (StringSet::iterator it = _include_dirs.begin(); it != _include_dirs.end(); it++) {
|
||||
free((void*)*it);
|
||||
free(*it);
|
||||
}
|
||||
_include_dirs.clear();
|
||||
|
||||
|
Reference in New Issue
Block a user