From 416c9ecec038c6c32d0173c879832438855e5980 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 6 Jun 2016 06:25:02 -0700 Subject: [PATCH] fix GC dump printing for 64-bit Windows --- racket/src/racket/gc2/msgprint.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/racket/src/racket/gc2/msgprint.c b/racket/src/racket/gc2/msgprint.c index 6f7c37a5db..d962a83fbe 100644 --- a/racket/src/racket/gc2/msgprint.c +++ b/racket/src/racket/gc2/msgprint.c @@ -80,7 +80,7 @@ void gc_fprintf(int ignored, const char *c, ...) while (*c) { if (*c == '%') { int len = -1, slen; - int islong = 0; + int islong = 0, isintptr = 0; char *s; if (pos) { @@ -97,6 +97,10 @@ void gc_fprintf(int ignored, const char *c, ...) } } + if (*c == 'I') { + isintptr = 1; + c++; + } if (*c == 'l') { islong = 1; c++; @@ -117,10 +121,15 @@ void gc_fprintf(int ignored, const char *c, ...) case 'i': case 'p': { - long v; + intptr_t v; int d, i; - if (islong) { + if (*c == 'p') + isintptr = 1; + + if (isintptr) { + v = va_arg(args, intptr_t); + } else if (islong) { v = va_arg(args, long); } else { v = va_arg(args, int);