dinput: Replace strdup with HeapAlloc.

This commit is contained in:
Vitaliy Margolen 2008-09-14 11:05:55 -06:00 committed by Alexandre Julliard
parent cc86f6890f
commit 5085d4cd35
1 changed files with 11 additions and 7 deletions

View File

@ -264,14 +264,18 @@ static void find_joydevs(void)
) )
) { ) {
joydev.device = strdup(buf); if (!(joydev.device = HeapAlloc(GetProcessHeap(), 0, strlen(buf) + 1))) {
close(fd);
if (-1!=ioctl(fd, EVIOCGNAME(MAX_PATH-1), buf)) { continue;
buf[MAX_PATH-1] = 0;
joydev.name = strdup(buf);
} else {
joydev.name = joydev.device;
} }
strcpy(joydev.device, buf);
buf[MAX_PATH - 1] = 0;
if (ioctl(fd, EVIOCGNAME(MAX_PATH - 1), buf) != -1 &&
(joydev.name = HeapAlloc(GetProcessHeap(), 0, strlen(buf) + 1)))
strcpy(joydev.name, buf);
else
joydev.name = joydev.device;
joydev.guid = DInput_Wine_Joystick_Base_GUID; joydev.guid = DInput_Wine_Joystick_Base_GUID;
joydev.guid.Data3 += have_joydevs; joydev.guid.Data3 += have_joydevs;