summaryrefslogtreecommitdiff
path: root/src/depend
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2011-11-12 13:00:29 +0000
committerrubidium <rubidium@openttd.org>2011-11-12 13:00:29 +0000
commit7fd1e1df81c3ed45e176f1bbf46d873b6cff316e (patch)
tree8f2ad83400a7897a066ff4f500bd0cdd150c1b93 /src/depend
parentd61b90ac6fb63ee42f47ca53cacd5aa7d7b30bae (diff)
downloadopenttd-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')
-rw-r--r--src/depend/depend.cpp27
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();