wayland: Fix memory leaks in clipboard code
diff --git a/src/video/wayland/SDL_waylanddatamanager.c b/src/video/wayland/SDL_waylanddatamanager.c
index 8de4cdd..0f2d750 100644
--- a/src/video/wayland/SDL_waylanddatamanager.c
+++ b/src/video/wayland/SDL_waylanddatamanager.c
@@ -396,8 +396,9 @@ Wayland_data_device_clear_selection(SDL_WaylandDataDevice *data_device)
if (data_device == NULL || data_device->data_device == NULL) {
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);
+ Wayland_data_source_destroy(data_device->selection_source);
data_device->selection_source = NULL;
}
return status;
@@ -444,6 +445,9 @@ Wayland_data_device_set_selection(SDL_WaylandDataDevice *data_device,
source->source,
data_device->selection_serial);
}
+ if (data_device->selection_source != NULL) {
+ Wayland_data_source_destroy(data_device->selection_source);
+ }
data_device->selection_source = source;
}
}