[Mesa-dev] [PATCH 1/3] mesa: remove snprintf macro in imports.h to fix MSVC build

Brian Paul brianp at vmware.com
Fri Apr 13 16:03:39 UTC 2018


snprintf is a macro in the MSVC stdio.h header and we needed to
include that header before imports.h where we also defined an
snprintf macro.  Otherwise, the MSVC build would fail.  The recent
mtypes.h removal patches seems to have exposed this issue.

This patch simply removes our snprintf macro and replaces one use
of it in teximage.c with _mesa_snprintf().  There are other calls
to snprintf() in DRI drivers, but none of them are built on Windows.
---
 src/mesa/main/imports.h  | 4 ----
 src/mesa/main/teximage.c | 2 +-
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h
index 72ce878..a761f01 100644
--- a/src/mesa/main/imports.h
+++ b/src/mesa/main/imports.h
@@ -339,10 +339,6 @@ extern int
 _mesa_vsnprintf(char *str, size_t size, const char *fmt, va_list arg);
 
 
-#if defined(_MSC_VER) && !defined(snprintf)
-#define snprintf _snprintf
-#endif
-
 #if defined(_WIN32) && !defined(strtok_r)
 #define strtok_r strtok_s
 #endif
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 8d5f8aa..5284e60 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -1911,7 +1911,7 @@ texture_error_check( struct gl_context *ctx,
     * requires GL_OES_texture_float) are filtered elsewhere.
     */
    char bufCallerName[20];
-   snprintf(bufCallerName, 20, "glTexImage%dD", dimensions);
+   _mesa_snprintf(bufCallerName, 20, "glTexImage%dD", dimensions);
    if (_mesa_is_gles(ctx) &&
        texture_format_error_check_gles(ctx, format, type,
                                        internalFormat, bufCallerName)) {
-- 
2.7.4



More information about the mesa-dev mailing list