[at-spi2-core] AtspiDeviceListenerCB: remove const from event prototype



commit 7dfb0b7fc2d1710ef7fad54f910fa4c6a5e3af17
Author: Mike Gorse <mgorse suse com>
Date:   Tue Feb 23 10:12:15 2021 -0600

    AtspiDeviceListenerCB: remove const from event prototype
    
    The parameter is marked with (transfer full), and the code expects the caller
    to free the event, so adjust the prototype to clarify the expected behavior.
    Also fix a related memory leak in atspi-device-legacy.c.
    
    Fixes #31

 atspi/atspi-device-legacy.c   | 3 ++-
 atspi/atspi-device-listener.h | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/atspi/atspi-device-legacy.c b/atspi/atspi-device-legacy.c
index 6950bc37..6c19b790 100644
--- a/atspi/atspi-device-legacy.c
+++ b/atspi/atspi-device-legacy.c
@@ -86,7 +86,7 @@ set_virtual_modifier (AtspiDeviceLegacy *legacy_device, gint keycode, gboolean e
 
 
 gboolean
-key_cb (const AtspiDeviceEvent *event, void *user_data)
+key_cb (AtspiDeviceEvent *event, void *user_data)
 {
   AtspiDeviceLegacy *legacy_device = ATSPI_DEVICE_LEGACY (user_data);
   AtspiDeviceLegacyPrivate *priv = atspi_device_legacy_get_instance_private (legacy_device);
@@ -100,6 +100,7 @@ key_cb (const AtspiDeviceEvent *event, void *user_data)
                                   event->modifiers | priv->virtual_mods_enabled,
                                   event->event_string);
 
+  g_boxed_free (ATSPI_TYPE_DEVICE_EVENT, event);
   return ret;
 }
 
diff --git a/atspi/atspi-device-listener.h b/atspi/atspi-device-listener.h
index d91a2039..718a4153 100644
--- a/atspi/atspi-device-listener.h
+++ b/atspi/atspi-device-listener.h
@@ -45,7 +45,7 @@ GType atspi_device_event_get_type (void);
  * Returns: #TRUE if the client wishes to consume/preempt the event, preventing it from being
  * relayed to the currently focussed application, #FALSE if the event delivery should proceed as normal.
  **/
-typedef gboolean (*AtspiDeviceListenerCB)    (const AtspiDeviceEvent *stroke,
+typedef gboolean (*AtspiDeviceListenerCB)    (AtspiDeviceEvent *stroke,
                                                     void                      *user_data);
 
 /**


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]