From 330ea0bbe37f5cbb9e64ec506842b40244211c6d Mon Sep 17 00:00:00 2001 From: binary1248 Date: Wed, 24 Sep 2014 02:57:24 +0200 Subject: [PATCH] Fixed trying to truncate registry key names that did not need truncating. (#701) --- src/SFML/Window/Win32/JoystickImpl.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/SFML/Window/Win32/JoystickImpl.cpp b/src/SFML/Window/Win32/JoystickImpl.cpp index 46ee3dea..32c9c742 100644 --- a/src/SFML/Window/Win32/JoystickImpl.cpp +++ b/src/SFML/Window/Win32/JoystickImpl.cpp @@ -73,7 +73,9 @@ namespace subkey += caps.szRegKey; subkey += TEXT("\\"); subkey += REGSTR_KEY_JOYCURR; - subkey.erase(256); + + if (subkey.size() > 255) + subkey.erase(255); rootKey = HKEY_LOCAL_MACHINE; result = RegOpenKeyEx(rootKey, subkey.c_str(), 0, KEY_READ, ¤tKey); @@ -96,7 +98,9 @@ namespace subkey = TEXT("Joystick"); subkey += indexString.str(); subkey += REGSTR_VAL_JOYOEMNAME; - subkey.erase(256); + + if (subkey.size() > 255) + subkey.erase(255); TCHAR keyData[256]; DWORD keyDataSize = sizeof(keyData); @@ -113,7 +117,9 @@ namespace subkey = REGSTR_PATH_JOYOEM; subkey += TEXT("\\"); subkey.append(keyData, keyDataSize / sizeof(TCHAR)); - subkey.erase(256); + + if (subkey.size() > 255) + subkey.erase(255); result = RegOpenKeyEx(rootKey, subkey.c_str(), 0, KEY_READ, ¤tKey);