From 62f1aa135bc9fed07b24e1ff4da2c8e5c78ae790 Mon Sep 17 00:00:00 2001 From: Cary R Date: Fri, 31 Aug 2012 09:20:31 -0700 Subject: [PATCH] Cleanup after the va_copy() I missed that va_end() needs to be called on the new ap created by va_copy(). --- vvp/vpi_mcd.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/vvp/vpi_mcd.cc b/vvp/vpi_mcd.cc index 8a776864d..9e9865085 100644 --- a/vvp/vpi_mcd.cc +++ b/vvp/vpi_mcd.cc @@ -180,8 +180,8 @@ vpi_mcd_vprintf(PLI_UINT32 mcd, const char*fmt, va_list ap) char *buf_ptr = buffer; int rc = 0; bool need_free = false; - va_list save_ap; - va_copy(save_ap, ap); + va_list saved_ap; + va_copy(saved_ap, ap); if (!IS_MCD(mcd)) return 0; @@ -208,11 +208,12 @@ vpi_mcd_vprintf(PLI_UINT32 mcd, const char*fmt, va_list ap) buf_ptr = (char *)malloc(rc + 1); need_free = true; #ifdef __MINGW32__ - rc = _vsnprintf(buf_ptr, rc+1, fmt, save_ap); + rc = _vsnprintf(buf_ptr, rc+1, fmt, saved_ap); #else - rc = vsnprintf(buf_ptr, rc+1, fmt, save_ap); + rc = vsnprintf(buf_ptr, rc+1, fmt, saved_ap); #endif } + va_end(saved_ap); for(int i = 0; i < 31; i++) { if((mcd>>i) & 1) {