summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/util
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-04-09 13:42:55 +1000
committerBen Skeggs <skeggsb@gmail.com>2008-04-09 13:42:55 +1000
commit2a8de8ff94e0e0e52e03f8c8427a9e92fae374f4 (patch)
treec13df91fcc114b297635eb4a254bab5578bc8239 /src/gallium/auxiliary/util
parent2655f6901289bcfe3835cf28d7b9eefa242045b8 (diff)
parent7e57a9e8bba322b2ba8a02eec4b79c90e7052738 (diff)
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
Diffstat (limited to 'src/gallium/auxiliary/util')
-rw-r--r--src/gallium/auxiliary/util/p_debug.c11
-rw-r--r--src/gallium/auxiliary/util/p_debug_mem.c16
2 files changed, 11 insertions, 16 deletions
diff --git a/src/gallium/auxiliary/util/p_debug.c b/src/gallium/auxiliary/util/p_debug.c
index 5447bbb6f5..090e3b7794 100644
--- a/src/gallium/auxiliary/util/p_debug.c
+++ b/src/gallium/auxiliary/util/p_debug.c
@@ -43,18 +43,13 @@
#ifdef WIN32
static INLINE void
-rpl_EngDebugPrint(const char *format, ...)
+_EngDebugPrint(const char *format, ...)
{
va_list ap;
va_start(ap, format);
EngDebugPrint("", (PCHAR)format, ap);
va_end(ap);
}
-
-int rpl_vsnprintf(char *, size_t, const char *, va_list);
-int rpl_snprintf(char *str, size_t size, const char *format, ...);
-#define vsnprintf rpl_vsnprintf
-#define snprintf rpl_snprintf
#endif
@@ -65,8 +60,8 @@ void _debug_vprintf(const char *format, va_list ap)
/* EngDebugPrint does not handle float point arguments, so we need to use
* our own vsnprintf implementation */
char buf[512 + 1];
- rpl_vsnprintf(buf, sizeof(buf), format, ap);
- rpl_EngDebugPrint("%s", buf);
+ vsnprintf(buf, sizeof(buf), format, ap);
+ _EngDebugPrint("%s", buf);
#else
/* TODO: Implement debug print for WINCE */
#endif
diff --git a/src/gallium/auxiliary/util/p_debug_mem.c b/src/gallium/auxiliary/util/p_debug_mem.c
index c160afe5b7..97ec9c5b39 100644
--- a/src/gallium/auxiliary/util/p_debug_mem.c
+++ b/src/gallium/auxiliary/util/p_debug_mem.c
@@ -70,8 +70,7 @@ struct debug_memory_header
static struct list_head list = { &list, &list };
-static unsigned long start_no = 0;
-static unsigned long end_no = 0;
+static unsigned long last_no = 0;
void *
@@ -84,7 +83,7 @@ debug_malloc(const char *file, unsigned line, const char *function,
if(!hdr)
return NULL;
- hdr->no = end_no++;
+ hdr->no = last_no++;
hdr->file = file;
hdr->line = line;
hdr->function = function;
@@ -147,14 +146,14 @@ debug_realloc(const char *file, unsigned line, const char *function,
return new_ptr;
}
-void
-debug_memory_reset(void)
+unsigned long
+debug_memory_begin(void)
{
- start_no = end_no;
+ return last_no;
}
void
-debug_memory_report(void)
+debug_memory_end(unsigned long start_no)
{
struct list_head *entry;
@@ -164,7 +163,8 @@ debug_memory_report(void)
void *ptr;
hdr = LIST_ENTRY(struct debug_memory_header, entry, head);
ptr = (void *)((char *)hdr + sizeof(*hdr));
- if(hdr->no >= start_no)
+ if(start_no <= hdr->no && hdr->no < last_no ||
+ last_no < start_no && (hdr->no < last_no || start_no <= hdr->no))
debug_printf("%s:%u:%s: %u bytes at %p not freed\n",
hdr->file, hdr->line, hdr->function,
hdr->size, ptr);