diff options
Diffstat (limited to 'src/H5MM.c')
-rw-r--r-- | src/H5MM.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -168,6 +168,16 @@ H5MM_xstrdup (const char *s) void * H5MM_xfree (const void *mem) { - if (mem) HDfree (mem); + /* + * free(3) takes a non-const pointer as an argument even though + * conceptually the argument could be a constant because by time + * free() mucks with it's contents, it should already be free :-) + * Instead of passing a const arg to free, which generates a + * compiler warning, we cast it to a non-const arg first. With + * gcc, this results in a warning only if -Wcast-qual is turned on. + */ + void *non_const_mem = mem; + + if (mem) HDfree (non_const_mem); return NULL; } |