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.
This commit is contained in:
Yang Tse 2011-09-02 19:40:53 +02:00
parent 749dbfbc87
commit 9194e17003
8 changed files with 48 additions and 19 deletions

View file

@ -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 */