summaryrefslogtreecommitdiff
path: root/src/gallium/include/pipe/p_util.h
diff options
context:
space:
mode:
authorJosé Fonseca <jrfonseca@tungstengraphics.com>2008-03-23 18:38:10 +0000
committerJosé Fonseca <jrfonseca@tungstengraphics.com>2008-03-23 18:38:31 +0000
commit732422f6708199d6655185b1a5daec86efe2f1b7 (patch)
treed19bd16140925c007c1edea0972fff92b2405976 /src/gallium/include/pipe/p_util.h
parent312cbc5a5c7416745976c2281a9bbce6e3332965 (diff)
gallium: Memory debugging utilities.
There are no known tools for windows kernel memory debugging, so this is a simple set of malloc etc wrappers. Enabled by default on win32 debug builds
Diffstat (limited to 'src/gallium/include/pipe/p_util.h')
-rw-r--r--src/gallium/include/pipe/p_util.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/gallium/include/pipe/p_util.h b/src/gallium/include/pipe/p_util.h
index c2e0f8c6a5..d3b2fa2950 100644
--- a/src/gallium/include/pipe/p_util.h
+++ b/src/gallium/include/pipe/p_util.h
@@ -39,6 +39,22 @@ extern "C" {
#endif
+#if defined(WIN32) && defined(DEBUG) /* memory debugging */
+
+#include "p_debug.h"
+
+#define MALLOC( _size ) \
+ debug_malloc( __FILE__, __LINE__, __FUNCTION__, _size )
+#define CALLOC( _count, _size ) \
+ debug_calloc(__FILE__, __LINE__, __FUNCTION__, _count, _size )
+#define FREE( _ptr ) \
+ debug_free( __FILE__, __LINE__, __FUNCTION__, _ptr )
+#define REALLOC( _ptr, _old_size, _size ) \
+ debug_realloc( __FILE__, __LINE__, __FUNCTION__, _ptr, _old_size, _size )
+#define GETENV( X ) NULL
+
+#else
+
#ifdef WIN32
void * __stdcall
@@ -104,7 +120,7 @@ REALLOC( void *old_ptr, unsigned old_size, unsigned new_size )
#define GETENV( X ) NULL
-#else /* WIN32 */
+#else /* !WIN32 */
#define MALLOC( SIZE ) malloc( SIZE )
@@ -116,7 +132,8 @@ REALLOC( void *old_ptr, unsigned old_size, unsigned new_size )
#define GETENV( X ) getenv( X )
-#endif /* WIN32 */
+#endif /* !WIN32 */
+#endif /* !DEBUG */
#define MALLOC_STRUCT(T) (struct T *) MALLOC(sizeof(struct T))