Fix inconsistent use of print_error() and fprintf(stderr, ...) in MEM_guarded_printmemlist_internal().

Also extended the size of buf[] in print_error() to prevent mem_printmemlist_pydict_script[]
from getting truncated when MEM_printmemlist_pydict() is used.

Differential revision: https://developer.blender.org/D675

Reviewed by: Campbell Barton
This commit is contained in:
Tamito Kajiyama 2014-07-25 19:22:58 +09:00
parent c0a9337caa
commit af585e843b
1 changed files with 11 additions and 9 deletions

View File

@ -231,7 +231,7 @@ __attribute__ ((format(printf, 1, 2)))
#endif
static void print_error(const char *str, ...)
{
char buf[512];
char buf[1024];
va_list ap;
va_start(ap, str);
@ -239,7 +239,10 @@ static void print_error(const char *str, ...)
va_end(ap);
buf[sizeof(buf) - 1] = '\0';
if (error_callback) error_callback(buf);
if (error_callback)
error_callback(buf);
else
fputs(buf, stderr);
}
static void mem_lock_thread(void)
@ -794,11 +797,10 @@ static void MEM_guarded_printmemlist_internal(int pydict)
}
while (membl) {
if (pydict) {
fprintf(stderr,
" {'len':" SIZET_FORMAT ", "
"'name':'''%s''', "
"'pointer':'%p'},\n",
SIZET_ARG(membl->len), membl->name, (void *)(membl + 1));
print_error(" {'len':" SIZET_FORMAT ", "
"'name':'''%s''', "
"'pointer':'%p'},\n",
SIZET_ARG(membl->len), membl->name, (void *)(membl + 1));
}
else {
#ifdef DEBUG_MEMCOUNTER
@ -818,8 +820,8 @@ static void MEM_guarded_printmemlist_internal(int pydict)
else break;
}
if (pydict) {
fprintf(stderr, "]\n\n");
fprintf(stderr, mem_printmemlist_pydict_script);
print_error("]\n\n");
print_error(mem_printmemlist_pydict_script);
}
mem_unlock_thread();