Fixed freeing strings created by strdup() with SDL_free().

This only worked on platforms where SDL_free() wraps free().
This commit is contained in:
Philipp Wiesemann 2016-06-28 21:08:23 +02:00
parent 2f016cf88d
commit 6ec5e64056
3 changed files with 8 additions and 8 deletions

View File

@ -179,7 +179,7 @@ SDL_SYS_JoystickInit(void)
SDL_snprintf(s, SDL_arraysize(s), "/dev/uhid%d", i); SDL_snprintf(s, SDL_arraysize(s), "/dev/uhid%d", i);
joynames[SDL_SYS_numjoysticks] = strdup(s); joynames[SDL_SYS_numjoysticks] = SDL_strdup(s);
if (SDL_SYS_JoystickOpen(&nj, SDL_SYS_numjoysticks) == 0) { if (SDL_SYS_JoystickOpen(&nj, SDL_SYS_numjoysticks) == 0) {
SDL_SYS_JoystickClose(&nj); SDL_SYS_JoystickClose(&nj);
@ -193,7 +193,7 @@ SDL_SYS_JoystickInit(void)
SDL_snprintf(s, SDL_arraysize(s), "/dev/joy%d", i); SDL_snprintf(s, SDL_arraysize(s), "/dev/joy%d", i);
fd = open(s, O_RDONLY); fd = open(s, O_RDONLY);
if (fd != -1) { if (fd != -1) {
joynames[SDL_SYS_numjoysticks++] = strdup(s); joynames[SDL_SYS_numjoysticks++] = SDL_strdup(s);
close(fd); close(fd);
} }
} }
@ -304,14 +304,14 @@ SDL_SYS_JoystickOpen(SDL_Joystick * joy, int device_index)
} }
joy->hwdata = hw; joy->hwdata = hw;
hw->fd = fd; hw->fd = fd;
hw->path = strdup(path); hw->path = SDL_strdup(path);
if (!SDL_strncmp(path, "/dev/joy", 8)) { if (!SDL_strncmp(path, "/dev/joy", 8)) {
hw->type = BSDJOY_JOY; hw->type = BSDJOY_JOY;
joy->naxes = 2; joy->naxes = 2;
joy->nbuttons = 2; joy->nbuttons = 2;
joy->nhats = 0; joy->nhats = 0;
joy->nballs = 0; joy->nballs = 0;
joydevnames[device_index] = strdup("Gameport joystick"); joydevnames[device_index] = SDL_strdup("Gameport joystick");
goto usbend; goto usbend;
} else { } else {
hw->type = BSDJOY_UHID; hw->type = BSDJOY_UHID;
@ -363,7 +363,7 @@ SDL_SYS_JoystickOpen(SDL_Joystick * joy, int device_index)
str[i] = '\0'; str[i] = '\0';
asprintf(&new_name, "%s @ %s", str, path); asprintf(&new_name, "%s @ %s", str, path);
if (new_name != NULL) { if (new_name != NULL) {
free(joydevnames[SDL_SYS_numjoysticks]); SDL_free(joydevnames[SDL_SYS_numjoysticks]);
joydevnames[SDL_SYS_numjoysticks] = new_name; joydevnames[SDL_SYS_numjoysticks] = new_name;
} }
} }

View File

@ -74,8 +74,8 @@ extern "C"
if (joystick.Open(name) != B_ERROR) { if (joystick.Open(name) != B_ERROR) {
BString stick_name; BString stick_name;
joystick.GetControllerName(&stick_name); joystick.GetControllerName(&stick_name);
SDL_joyport[SDL_SYS_numjoysticks] = strdup(name); SDL_joyport[SDL_SYS_numjoysticks] = SDL_strdup(name);
SDL_joyname[SDL_SYS_numjoysticks] = strdup(stick_name.String()); SDL_joyname[SDL_SYS_numjoysticks] = SDL_strdup(stick_name.String());
SDL_SYS_numjoysticks++; SDL_SYS_numjoysticks++;
joystick.Close(); joystick.Close();
} }

View File

@ -145,7 +145,7 @@ display_handle_geometry(void *data,
{ {
SDL_VideoDisplay *display = data; SDL_VideoDisplay *display = data;
display->name = strdup(model); display->name = SDL_strdup(model);
display->driverdata = output; display->driverdata = output;
} }