Fixed bug 1882 - SDL_GetKeyboardState should return const.
Yuri K. Schlesner
The array returned by SDL_GetKeyboardState is also used internally by SDL to keep track of pressed/released keys and must not be modified, lest weird behaviour occurs. Because of this I believe it's return type should be changed to return a const pointer, which will provide a code indication of that fact.
--- a/include/SDL_keyboard.h Sun Jun 02 01:08:14 2013 -0700
+++ b/include/SDL_keyboard.h Sun Jun 02 01:09:12 2013 -0700
@@ -66,13 +66,13 @@
*
* \b Example:
* \code
- * Uint8 *state = SDL_GetKeyboardState(NULL);
+ * const Uint8 *state = SDL_GetKeyboardState(NULL);
* if ( state[SDL_SCANCODE_RETURN] ) {
* printf("<RETURN> is pressed.\n");
* }
* \endcode
*/
-extern DECLSPEC Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys);
+extern DECLSPEC const Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys);
/**
* \brief Get the current key modifier state for the keyboard.
--- a/src/events/SDL_keyboard.c Sun Jun 02 01:08:14 2013 -0700
+++ b/src/events/SDL_keyboard.c Sun Jun 02 01:09:12 2013 -0700
@@ -829,7 +829,7 @@
{
}
-Uint8 *
+const Uint8 *
SDL_GetKeyboardState(int *numkeys)
{
SDL_Keyboard *keyboard = &SDL_keyboard;