wayland: Fix memory leaks in clipboard code

This commit is contained in:
Cameron Gutman 2021-11-13 11:44:04 -06:00
parent 3e2f8668be
commit 674f361dec

View file

@ -396,8 +396,9 @@ Wayland_data_device_clear_selection(SDL_WaylandDataDevice *data_device)
if (data_device == NULL || data_device->data_device == NULL) { if (data_device == NULL || data_device->data_device == NULL) {
status = SDL_SetError("Invalid Data Device"); status = SDL_SetError("Invalid Data Device");
} else if (data_device->selection_source != 0) { } else if (data_device->selection_source != NULL) {
wl_data_device_set_selection(data_device->data_device, NULL, 0); wl_data_device_set_selection(data_device->data_device, NULL, 0);
Wayland_data_source_destroy(data_device->selection_source);
data_device->selection_source = NULL; data_device->selection_source = NULL;
} }
return status; return status;
@ -444,6 +445,9 @@ Wayland_data_device_set_selection(SDL_WaylandDataDevice *data_device,
source->source, source->source,
data_device->selection_serial); data_device->selection_serial);
} }
if (data_device->selection_source != NULL) {
Wayland_data_source_destroy(data_device->selection_source);
}
data_device->selection_source = source; data_device->selection_source = source;
} }
} }