Replace duplicate functions and lstrlen/lstrcat with SDL string functions

This commit is contained in:
Cameron Cawley 2021-03-05 16:53:06 +00:00 committed by Sam Lantinga
parent 67e8522d31
commit 391bb80bb9
6 changed files with 16 additions and 50 deletions

View File

@ -376,7 +376,7 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority,
#if !defined(HAVE_STDIO_H) && !defined(__WINRT__) #if !defined(HAVE_STDIO_H) && !defined(__WINRT__)
/* Screen output to stderr, if console was attached. */ /* Screen output to stderr, if console was attached. */
if (consoleAttached == 1) { if (consoleAttached == 1) {
if (!WriteConsole(stderrHandle, tstr, lstrlen(tstr), &charsWritten, NULL)) { if (!WriteConsole(stderrHandle, tstr, SDL_tcslen(tstr), &charsWritten, NULL)) {
OutputDebugString(TEXT("Error calling WriteConsole\r\n")); OutputDebugString(TEXT("Error calling WriteConsole\r\n"));
if (GetLastError() == ERROR_NOT_ENOUGH_MEMORY) { if (GetLastError() == ERROR_NOT_ENOUGH_MEMORY) {
OutputDebugString(TEXT("Insufficient heap memory to write message\r\n")); OutputDebugString(TEXT("Insufficient heap memory to write message\r\n"));
@ -384,7 +384,7 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority,
} }
} else if (consoleAttached == 2) { } else if (consoleAttached == 2) {
if (!WriteFile(stderrHandle, output, lstrlenA(output), &charsWritten, NULL)) { if (!WriteFile(stderrHandle, output, SDL_strlen(output), &charsWritten, NULL)) {
OutputDebugString(TEXT("Error calling WriteFile\r\n")); OutputDebugString(TEXT("Error calling WriteFile\r\n"));
} }
} }

View File

@ -58,42 +58,6 @@ static const IID SDL_IID_IAudioCaptureClient = { 0xc8adbd64, 0xe71e, 0x48a0,{ 0x
static const GUID SDL_KSDATAFORMAT_SUBTYPE_PCM = { 0x00000001, 0x0000, 0x0010,{ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } }; static const GUID SDL_KSDATAFORMAT_SUBTYPE_PCM = { 0x00000001, 0x0000, 0x0010,{ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } };
static const GUID SDL_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = { 0x00000003, 0x0000, 0x0010,{ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } }; static const GUID SDL_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = { 0x00000003, 0x0000, 0x0010,{ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } };
static SDL_bool
WStrEqual(const WCHAR *a, const WCHAR *b)
{
while (*a) {
if (*a != *b) {
return SDL_FALSE;
}
a++;
b++;
}
return *b == 0;
}
static size_t
WStrLen(const WCHAR *wstr)
{
size_t retval = 0;
if (wstr) {
while (*(wstr++)) {
retval++;
}
}
return retval;
}
static WCHAR *
WStrDupe(const WCHAR *wstr)
{
const size_t len = (WStrLen(wstr) + 1) * sizeof (WCHAR);
WCHAR *retval = (WCHAR *) SDL_malloc(len);
if (retval) {
SDL_memcpy(retval, wstr, len);
}
return retval;
}
void void
WASAPI_RemoveDevice(const SDL_bool iscapture, LPCWSTR devid) WASAPI_RemoveDevice(const SDL_bool iscapture, LPCWSTR devid)
@ -103,7 +67,7 @@ WASAPI_RemoveDevice(const SDL_bool iscapture, LPCWSTR devid)
DevIdList *prev = NULL; DevIdList *prev = NULL;
for (i = deviceid_list; i; i = next) { for (i = deviceid_list; i; i = next) {
next = i->next; next = i->next;
if (WStrEqual(i->str, devid)) { if (SDL_wcscmp(i->str, devid) == 0) {
if (prev) { if (prev) {
prev->next = next; prev->next = next;
} else { } else {
@ -153,7 +117,7 @@ WASAPI_AddDevice(const SDL_bool iscapture, const char *devname, WAVEFORMATEXTENS
/* see if we already have this one. */ /* see if we already have this one. */
for (devidlist = deviceid_list; devidlist; devidlist = devidlist->next) { for (devidlist = deviceid_list; devidlist; devidlist = devidlist->next) {
if (WStrEqual(devidlist->str, devid)) { if (SDL_wcscmp(devidlist->str, devid) == 0) {
return; /* we already have this. */ return; /* we already have this. */
} }
} }
@ -163,7 +127,7 @@ WASAPI_AddDevice(const SDL_bool iscapture, const char *devname, WAVEFORMATEXTENS
return; /* oh well. */ return; /* oh well. */
} }
devid = WStrDupe(devid); devid = SDL_wcsdup(devid);
if (!devid) { if (!devid) {
SDL_free(devidlist); SDL_free(devidlist);
return; /* oh well. */ return; /* oh well. */
@ -690,7 +654,7 @@ WASAPI_OpenDevice(_THIS, void *handle, const char *devname, int iscapture)
if (!devid) { /* is default device? */ if (!devid) { /* is default device? */
this->hidden->default_device_generation = SDL_AtomicGet(iscapture ? &WASAPI_DefaultCaptureGeneration : &WASAPI_DefaultPlaybackGeneration); this->hidden->default_device_generation = SDL_AtomicGet(iscapture ? &WASAPI_DefaultCaptureGeneration : &WASAPI_DefaultPlaybackGeneration);
} else { } else {
this->hidden->devid = WStrDupe(devid); this->hidden->devid = SDL_wcsdup(devid);
if (!this->hidden->devid) { if (!this->hidden->devid) {
return SDL_OutOfMemory(); return SDL_OutOfMemory();
} }

View File

@ -46,10 +46,12 @@
#if UNICODE #if UNICODE
#define WIN_StringToUTF8 WIN_StringToUTF8W #define WIN_StringToUTF8 WIN_StringToUTF8W
#define WIN_UTF8ToString WIN_UTF8ToStringW #define WIN_UTF8ToString WIN_UTF8ToStringW
#define SDL_tcslen SDL_wcslen
#define SDL_tcsstr SDL_wcsstr #define SDL_tcsstr SDL_wcsstr
#else #else
#define WIN_StringToUTF8 WIN_StringToUTF8A #define WIN_StringToUTF8 WIN_StringToUTF8A
#define WIN_UTF8ToString WIN_UTF8ToStringA #define WIN_UTF8ToString WIN_UTF8ToStringA
#define SDL_tcslen SDL_strlen
#define SDL_tcsstr SDL_strstr #define SDL_tcsstr SDL_strstr
#endif #endif

View File

@ -143,7 +143,7 @@ SDL_GetPrefPath(const char *org, const char *app)
return NULL; return NULL;
} }
new_wpath_len = lstrlenW(worg) + lstrlenW(wapp) + lstrlenW(path) + 3; new_wpath_len = SDL_wcslen(worg) + SDL_wcslen(wapp) + SDL_wcslen(path) + 3;
if ((new_wpath_len + 1) > MAX_PATH) { if ((new_wpath_len + 1) > MAX_PATH) {
SDL_free(worg); SDL_free(worg);
@ -153,8 +153,8 @@ SDL_GetPrefPath(const char *org, const char *app)
} }
if (*worg) { if (*worg) {
lstrcatW(path, L"\\"); SDL_wcslcat(path, L"\\", SDL_arraysize(path));
lstrcatW(path, worg); SDL_wcslcat(path, worg, SDL_arraysize(path));
} }
SDL_free(worg); SDL_free(worg);
@ -167,8 +167,8 @@ SDL_GetPrefPath(const char *org, const char *app)
} }
} }
lstrcatW(path, L"\\"); SDL_wcslcat(path, L"\\", SDL_arraysize(path));
lstrcatW(path, wapp); SDL_wcslcat(path, wapp, SDL_arraysize(path));
SDL_free(wapp); SDL_free(wapp);
api_result = CreateDirectoryW(path, NULL); api_result = CreateDirectoryW(path, NULL);
@ -179,7 +179,7 @@ SDL_GetPrefPath(const char *org, const char *app)
} }
} }
lstrcatW(path, L"\\"); SDL_wcslcat(path, L"\\", SDL_arraysize(path));
retval = WIN_StringToUTF8W(path); retval = WIN_StringToUTF8W(path);

View File

@ -89,7 +89,7 @@ WINRT_GetGameBar()
IGameBarStatics_ *pGameBar = NULL; IGameBarStatics_ *pGameBar = NULL;
HRESULT hr; HRESULT hr;
hr = ::WindowsCreateString(wClassName, (UINT32)wcslen(wClassName), &hClassName); hr = ::WindowsCreateString(wClassName, (UINT32)SDL_wcslen(wClassName), &hClassName);
if (FAILED(hr)) { if (FAILED(hr)) {
goto done; goto done;
} }

View File

@ -782,7 +782,7 @@ WINRT_CreateDisplayRequest(_THIS)
ABI::Windows::System::Display::IDisplayRequest * pDisplayRequest = nullptr; ABI::Windows::System::Display::IDisplayRequest * pDisplayRequest = nullptr;
HRESULT hr; HRESULT hr;
hr = ::WindowsCreateString(wClassName, (UINT32)wcslen(wClassName), &hClassName); hr = ::WindowsCreateString(wClassName, (UINT32)SDL_wcslen(wClassName), &hClassName);
if (FAILED(hr)) { if (FAILED(hr)) {
goto done; goto done;
} }