# HG changeset patch
# User Sam Lantinga <slouken@libsdl.org>
# Date 1223827534 0
# Node ID 5955b6550d7e9c4cfffd478ea4561f7b173212b7
# Parent  f55c87ae336b1e48a1a9045af312e2a5e06d2c30
Fixed memory leak in raw mouse input processing.
Corrected the mouse button indices.

diff -r f55c87ae336b -r 5955b6550d7e src/video/win32/SDL_win32events.c
--- a/src/video/win32/SDL_win32events.c	Sat Oct 04 06:46:59 2008 +0000
+++ b/src/video/win32/SDL_win32events.c	Sun Oct 12 16:05:34 2008 +0000
@@ -226,7 +226,7 @@
             /* we're collecting data from the mouse */
             GetRawInputData((HRAWINPUT) lParam, RID_INPUT, NULL, &size,
                             sizeof(RAWINPUTHEADER));
-            lpb = SDL_malloc(size * sizeof(LPBYTE));
+            lpb = SDL_stack_alloc(BYTE, size);
             GetRawInputData((HRAWINPUT) lParam, RID_INPUT, lpb, &size,
                             sizeof(RAWINPUTHEADER));
             raw = (RAWINPUT *) lpb;
@@ -252,19 +252,19 @@
                 SDL_SendMouseMotion(index, 0, point.x, point.y, 0);
             }
             /* we're sending mouse buttons messages to check up if sth changed */
-            if (flags & RI_MOUSE_BUTTON_1_DOWN) {
+            if (flags & RI_MOUSE_LEFT_BUTTON_DOWN) {
                 SDL_SendMouseButton(index, SDL_PRESSED, SDL_BUTTON_LEFT);
-            } else if (flags & RI_MOUSE_BUTTON_1_UP) {
+            } else if (flags & RI_MOUSE_LEFT_BUTTON_UP) {
                 SDL_SendMouseButton(index, SDL_RELEASED, SDL_BUTTON_LEFT);
             }
-            if (flags & RI_MOUSE_BUTTON_2_DOWN) {
+            if (flags & RI_MOUSE_MIDDLE_BUTTON_DOWN) {
                 SDL_SendMouseButton(index, SDL_PRESSED, SDL_BUTTON_MIDDLE);
-            } else if (flags & RI_MOUSE_BUTTON_2_UP) {
+            } else if (flags & RI_MOUSE_MIDDLE_BUTTON_UP) {
                 SDL_SendMouseButton(index, SDL_RELEASED, SDL_BUTTON_MIDDLE);
             }
-            if (flags & RI_MOUSE_BUTTON_3_DOWN) {
+            if (flags & RI_MOUSE_RIGHT_BUTTON_DOWN) {
                 SDL_SendMouseButton(index, SDL_PRESSED, SDL_BUTTON_RIGHT);
-            } else if (flags & RI_MOUSE_BUTTON_3_UP) {
+            } else if (flags & RI_MOUSE_RIGHT_BUTTON_UP) {
                 SDL_SendMouseButton(index, SDL_RELEASED, SDL_BUTTON_RIGHT);
             }
             if (flags & RI_MOUSE_BUTTON_4_DOWN) {
@@ -283,6 +283,7 @@
                                        raw->data.mouse.usButtonData);
                 }
             }
+            SDL_stack_free(lpb);
         }
         return (0);