Fixed bug 1882 - SDL_GetKeyboardState should return const.
authorSam Lantinga <slouken@libsdl.org>
Sun, 02 Jun 2013 01:09:12 -0700
changeset 7258 89d47188c9a4
parent 7257 5997d00782e8
child 7259 be3edef98d4b
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.
include/SDL_keyboard.h
src/events/SDL_keyboard.c
--- 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;