diff options
Diffstat (limited to 'libc/stdlib/malloc')
| -rw-r--r-- | libc/stdlib/malloc/malloc.h | 5 | ||||
| -rw-r--r-- | libc/stdlib/malloc/malloc_debug.c | 15 | 
2 files changed, 12 insertions, 8 deletions
| diff --git a/libc/stdlib/malloc/malloc.h b/libc/stdlib/malloc/malloc.h index 7fe8b6016..238bfb669 100644 --- a/libc/stdlib/malloc/malloc.h +++ b/libc/stdlib/malloc/malloc.h @@ -165,6 +165,9 @@ extern malloc_mutex_t __malloc_sbrk_lock;     when the variable __malloc_debug is set to true. */  #ifdef MALLOC_DEBUGGING +/* The number of spaces in a malloc debug indent level.  */ +#define MALLOC_DEBUG_INDENT_SIZE 3 +  extern int __malloc_debug, __malloc_check;  # define MALLOC_DEBUG(indent, fmt, args...)				      \ @@ -178,7 +181,7 @@ extern int __malloc_debug_cur_indent;     by a newline, and change the level by INDENT.  */  extern void __malloc_debug_printf (int indent, const char *fmt, ...); -/* Change the current debug print level by INDENT.  */ +/* Change the current debug print level by INDENT, and return the value.  */  #define __malloc_debug_indent(indent) (__malloc_debug_cur_indent += indent)  /* Set the current debug print level to LEVEL.  */ diff --git a/libc/stdlib/malloc/malloc_debug.c b/libc/stdlib/malloc/malloc_debug.c index 20a37f2f0..d231fa7b6 100644 --- a/libc/stdlib/malloc/malloc_debug.c +++ b/libc/stdlib/malloc/malloc_debug.c @@ -19,9 +19,7 @@  #include "malloc.h"  #include "heap.h" -#ifdef MALLOC_DEBUGGING  int __malloc_debug = 0, __malloc_check = 0; -#endif  #ifdef MALLOC_MMB_DEBUGGING  int __malloc_mmb_debug = 0; @@ -36,11 +34,14 @@ int __malloc_debug_cur_indent = 0;  void  __malloc_debug_printf (int indent, const char *fmt, ...)  { -  int i; +  unsigned spaces = __malloc_debug_cur_indent * MALLOC_DEBUG_INDENT_SIZE;    va_list val; -  for (i = 0; i < __malloc_debug_cur_indent; i++) -    fputs ("   ", stderr); +  while (spaces > 0) +    { +      putc (' ', stderr); +      spaces--; +    }    va_start (val, fmt);    vfprintf (stderr, fmt, val); @@ -58,13 +59,13 @@ __malloc_debug_init (void)    if (ev)      {        int val = atoi (ev); +        if (val & 1)  	__malloc_check = 1; -#ifdef MALLOC_DEBUGGING        if (val & 2)  	__malloc_debug = 1; -#endif +  #ifdef MALLOC_MMB_DEBUGGING        if (val & 4)  	__malloc_mmb_debug = 1; | 
