diff options
author | rubidium <rubidium@openttd.org> | 2011-11-12 13:00:29 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2011-11-12 13:00:29 +0000 |
commit | 7fd1e1df81c3ed45e176f1bbf46d873b6cff316e (patch) | |
tree | 8f2ad83400a7897a066ff4f500bd0cdd150c1b93 /src/depend/depend.cpp | |
parent | d61b90ac6fb63ee42f47ca53cacd5aa7d7b30bae (diff) | |
download | openttd-7fd1e1df81c3ed45e176f1bbf46d873b6cff316e.tar.xz |
(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
Diffstat (limited to 'src/depend/depend.cpp')
-rw-r--r-- | src/depend/depend.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/depend/depend.cpp b/src/depend/depend.cpp index c224efdaf..b9c8f7a23 100644 --- a/src/depend/depend.cpp +++ b/src/depend/depend.cpp @@ -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(); |