From 01bfde4520ab9e61f25340df36433428567465ed Mon Sep 17 00:00:00 2001 From: pionere Date: Thu, 17 Mar 2022 12:22:18 +0100 Subject: [PATCH] simplify SetDSerror - no need to keep the error in a static variable - always print the error code - reduce the required stack-size - reduce the number of snprintf calls (and code size) --- src/audio/directsound/SDL_directsound.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/audio/directsound/SDL_directsound.c b/src/audio/directsound/SDL_directsound.c index eda0eecec..0242b139d 100644 --- a/src/audio/directsound/SDL_directsound.c +++ b/src/audio/directsound/SDL_directsound.c @@ -98,10 +98,8 @@ DSOUND_Load(void) static int SetDSerror(const char *function, int code) { - static const char *error; - static char errbuf[1024]; + const char *error; - errbuf[0] = 0; switch (code) { case E_NOINTERFACE: error = "Unsupported interface -- Is DirectX 8.0 or later installed?"; @@ -137,15 +135,11 @@ SetDSerror(const char *function, int code) error = "Function not supported"; break; default: - SDL_snprintf(errbuf, SDL_arraysize(errbuf), - "%s: Unknown DirectSound error: 0x%x", function, code); + error = "Unknown DirectSound error"; break; } - if (!errbuf[0]) { - SDL_snprintf(errbuf, SDL_arraysize(errbuf), "%s: %s", function, - error); - } - return SDL_SetError("%s", errbuf); + + return SDL_SetError("%s: %s (0x%x)", function, error, code); } static void