SDL: wayland: Fix memory leaks in clipboard code

From 674f361decbb607bf682535975b64d2ba5ad89fd Mon Sep 17 00:00:00 2001
From: Cameron Gutman <[EMAIL REDACTED]>
Date: Sat, 13 Nov 2021 11:44:04 -0600
Subject: [PATCH] wayland: Fix memory leaks in clipboard code

---
 src/video/wayland/SDL_waylanddatamanager.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/video/wayland/SDL_waylanddatamanager.c b/src/video/wayland/SDL_waylanddatamanager.c
index 8de4cdddf3..0f2d75082b 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;
         }
     }