Expose compiler warnings from freeing data declared as const
authorPanu Matilainen <pmatilai@redhat.com>
Sat, 15 Dec 2007 11:41:58 +0000 (13:41 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Sat, 15 Dec 2007 11:41:58 +0000 (13:41 +0200)
- _free() is just a wrapper to free() which additionally returns NULL
- add _constfree() for use in the cases where const is used to protect
  malloced "read-only" data in long-lived otherwise exposed structures etc

system.h

index af91f4e..573064f 100644 (file)
--- a/system.h
+++ b/system.h
@@ -234,17 +234,30 @@ typedef   char * security_context_t;
 #endif
 
 /**
- * Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
+ * Wrapper to free(3), permit NULL, return NULL.
  * @param p             memory to free
  * @return              NULL always
  */
 static inline
-void * _free(const void * p)
+void * _free(void * p)
 {
-    if (p != NULL)      free((void *)p);
+    if (p != NULL)      free(p);
     return NULL;
 }
 
+/**
+ * Wrapper to free(3), permit NULL, return NULL. 
+ * For documenting cases where const is used to protect long-lived 
+ * non-const data that's supposed to be freed.
+ * @param p             memory to free
+ * @return              NULL always
+ */
+static inline
+void * _constfree(const void * p)
+{
+    if (p != NULL)      free((void *)p);
+    return NULL;
+}
 
 /* FIX: these are macros */
 /**