Mesa (master): glsl: Fix printf_length() on MSVC.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Tue Feb 1 10:42:28 UTC 2011


Module: Mesa
Branch: master
Commit: 3c701f1d61b33a5ffaddd4199ac277da8e287f30
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c701f1d61b33a5ffaddd4199ac277da8e287f30

Author: José Fonseca <jfonseca at vmware.com>
Date:   Tue Feb  1 10:41:46 2011 +0000

glsl: Fix printf_length() on MSVC.

---

 src/glsl/ralloc.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/glsl/ralloc.c b/src/glsl/ralloc.c
index fa2dd8b..3ba5d86 100644
--- a/src/glsl/ralloc.c
+++ b/src/glsl/ralloc.c
@@ -392,7 +392,15 @@ printf_length(const char *fmt, va_list untouched_args)
    va_list args;
    va_copy(args, untouched_args);
 
+#ifdef _MSC_VER
+   /* We need to use _vcsprintf to calculate the size as vsnprintf returns -1
+    * if the number of characters to write is greater than count.
+    */
+   size = _vscprintf(fmt, args);
+   (void)junk;
+#else
    size = vsnprintf(&junk, 1, fmt, args);
+#endif
    assert(size >= 0);
 
    return size;




More information about the mesa-commit mailing list