summaryrefslogtreecommitdiff
path: root/lib/memdebug.h
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2011-09-02 19:40:53 +0200
committerYang Tse <yangsita@gmail.com>2011-09-02 19:40:53 +0200
commit9194e1700312f27c6e2abdfb1f604e130497e887 (patch)
treeb8aff846ffca0041e9865850875025968fa9fc7e /lib/memdebug.h
parent749dbfbc87d6043c4bfb57041ecbf2be6a1d42bb (diff)
downloadcurl-9194e1700312f27c6e2abdfb1f604e130497e887.tar.gz
MemoryTracking: fix logging of free() calls done where Curl_safefree is called
Just internal stuff... Curl_safefree is now a macro defined in memdebug.h instead of a function prototyped in url.h and implemented in url.c, so inclusion of url.h is no longer required in order to simply use Curl_safefree. Provide definition of macro WHILE_FALSE in setup_once.h in order to allow other macros such as DEBUGF and DEBUGASSERT, and code using it, to compile without 'conditional expression is constant' warnings. The WHILE_FALSE stuff fixes 150+ MSVC compiler warnings.
Diffstat (limited to 'lib/memdebug.h')
-rw-r--r--lib/memdebug.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/memdebug.h b/lib/memdebug.h
index 02df08877..a042bb474 100644
--- a/lib/memdebug.h
+++ b/lib/memdebug.h
@@ -1,6 +1,6 @@
-#ifdef CURLDEBUG
#ifndef HEADER_CURL_MEMDEBUG_H
#define HEADER_CURL_MEMDEBUG_H
+#ifdef CURLDEBUG
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
@@ -139,9 +139,21 @@ CURL_EXTERN int curl_fclose(FILE *file, int line, const char *source);
#endif /* MEMDEBUG_NODEFINES */
-#endif /* HEADER_CURL_MEMDEBUG_H */
#endif /* CURLDEBUG */
+/*
+** Following section applies even when CURLDEBUG is not defined.
+*/
+
#ifndef fake_sclose
-#define fake_sclose(x)
+#define fake_sclose(x) do { } WHILE_FALSE
#endif
+
+/*
+ * Curl_safefree defined as a macro to allow MemoryTracking feature
+ * to log free() calls at same location where Curl_safefree is used.
+ */
+
+#define Curl_safefree(ptr) do {if((ptr)) free((ptr));} WHILE_FALSE
+
+#endif /* HEADER_CURL_MEMDEBUG_H */