SDL: Save the error code before doing any other operation

From 17c397f7ece85e1948a2eca739dd99122f761ea2 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 5 Jun 2023 21:18:49 -0700
Subject: [PATCH] Save the error code before doing any other operation

SDL_ClearError() resets the Win32 error code to 0
---
 src/hidapi/windows/hid.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/hidapi/windows/hid.c b/src/hidapi/windows/hid.c
index 81b36729ad42..740cbbbefb9b 100644
--- a/src/hidapi/windows/hid.c
+++ b/src/hidapi/windows/hid.c
@@ -255,6 +255,9 @@ static void free_hid_device(hid_device *dev)
 
 static void register_winapi_error_to_buffer(wchar_t **error_buffer, const WCHAR *op)
 {
+	WCHAR system_err_buf[1024];
+	DWORD error_code = GetLastError();
+
 	free(*error_buffer);
 	*error_buffer = NULL;
 
@@ -268,9 +271,6 @@ static void register_winapi_error_to_buffer(wchar_t **error_buffer, const WCHAR
 		return;
 	}
 
-	WCHAR system_err_buf[1024];
-	DWORD error_code = GetLastError();
-
 	DWORD system_err_len = FormatMessageW(
 		FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
 		NULL,