xvimagesink: Don't leak temporary

Use a stack variable instead of a temporarily
malloced variable that wasn't being freed
properly. Fixes a small leak of a GstXvTouchDevice

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3100>
This commit is contained in:
Jan Schmidt 2022-10-01 04:47:31 +10:00 committed by GStreamer Marge Bot
parent aae7b5416c
commit c8cf714d37

View file

@ -1141,7 +1141,7 @@ gst_xwindow_select_touch_events (GstXvContext * context, GstXWindow * window)
/* Find suitable touch screen devices, and select touch events for each */ /* Find suitable touch screen devices, and select touch events for each */
for (i = 0; i < ndevices; i++) { for (i = 0; i < ndevices; i++) {
XIEventMask mask_data; XIEventMask mask_data;
GstXvTouchDevice temp, *device; GstXvTouchDevice temp;
gboolean has_touch = FALSE; gboolean has_touch = FALSE;
if (devices[i].use != XISlavePointer) if (devices[i].use != XISlavePointer)
@ -1186,11 +1186,11 @@ gst_xwindow_select_touch_events (GstXvContext * context, GstXWindow * window)
"pressure-sensitive (abs)" : "pressure-sensitive (rel)"), "pressure-sensitive (abs)" : "pressure-sensitive (rel)"),
temp.id, temp.name); temp.id, temp.name);
device = g_new (GstXvTouchDevice, 1); GstXvTouchDevice device = temp;
*device = temp; device.name = g_strdup (temp.name);
device->name = g_strdup (device->name);
window->touch_devices = window->touch_devices =
g_array_append_vals (window->touch_devices, device, 1); g_array_append_val (window->touch_devices, device);
mask_data.deviceid = temp.id; mask_data.deviceid = temp.id;
mask_data.mask_len = mask_len; mask_data.mask_len = mask_len;