From 40f7cdf52a9d027ce65a6e99388999e6a0fedffc Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 26 Jun 2009 19:53:54 +0000 Subject: [PATCH] fix GC log message use of value-width parameter (which might not be available) svn: r15309 --- src/mzscheme/src/thread.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/mzscheme/src/thread.c b/src/mzscheme/src/thread.c index fde5eed099..fbd18f4460 100644 --- a/src/mzscheme/src/thread.c +++ b/src/mzscheme/src/thread.c @@ -7400,13 +7400,26 @@ static void done_with_GC() #ifdef MZ_PRECISE_GC static void inform_GC(int major_gc, long pre_used, long post_used) { - if (scheme_main_logger) - scheme_log(scheme_main_logger, - SCHEME_LOG_DEBUG, 0, - "GC [%s] at %ld bytes; %ld collected in %ld msec", - (major_gc ? "major" : "minor"), - pre_used, pre_used - post_used, - end_this_gc_time - start_this_gc_time); + if (scheme_main_logger) { + /* Don't use scheme_log(), because it wants to allocate a buffer + based on the max value-print width, and we may not be at a + point where parameters are available. */ + char buf[128]; + long buflen; + + sprintf(buf, + "GC [%s] at %ld bytes; %ld collected in %ld msec", + (major_gc ? "major" : "minor"), + pre_used, pre_used - post_used, + end_this_gc_time - start_this_gc_time); + buflen = strlen(buf); + + scheme_log_message(scheme_main_logger, + SCHEME_LOG_DEBUG, + buf, buflen, + NULL); + } + } #endif