diff --git a/src/dynapi/SDL_dynapi.c b/src/dynapi/SDL_dynapi.c index 21b9bb80f3..da414879b4 100644 --- a/src/dynapi/SDL_dynapi.c +++ b/src/dynapi/SDL_dynapi.c @@ -86,13 +86,10 @@ static void SDL_InitDynamicAPI(void); result = jump_table.SDL_vsnprintf(buf, sizeof(buf), fmt, ap); \ va_end(ap); \ if (result >= 0 && (size_t)result >= sizeof(buf)) { \ - size_t len = (size_t)result + 1; \ - str = (char *)jump_table.SDL_malloc(len); \ - if (str) { \ - va_start(ap, fmt); \ - result = jump_table.SDL_vsnprintf(str, len, fmt, ap); \ - va_end(ap); \ - } \ + str = NULL; \ + va_start(ap, fmt); \ + result = jump_table.SDL_vasprintf(&str, fmt, ap); \ + va_end(ap); \ } \ if (result >= 0) { \ jump_table.SDL_SetError("%s", str); \