AtspiDeviceListenerCB: remove const from event prototype 17/254817/1
authorMike Gorse <mgorse@suse.com>
Tue, 23 Feb 2021 16:12:15 +0000 (10:12 -0600)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Tue, 9 Mar 2021 15:10:35 +0000 (16:10 +0100)
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

Change-Id: I268c80df3f251ca99456827a878e78f191a18736

atspi/atspi-device-legacy.c
atspi/atspi-device-listener.h

index 6950bc3..6c19b79 100644 (file)
@@ -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;
 }
 
index d91a203..718a415 100644 (file)
@@ -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);
 
 /**