From 226b6abfab103283afec87ba54f38b61ff5aba2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Mon, 19 Feb 2024 15:39:42 +0100 Subject: [PATCH] egismoc: Use an autopointer to cleanup error on command done callback --- libfprint/drivers/egismoc/egismoc.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/libfprint/drivers/egismoc/egismoc.c b/libfprint/drivers/egismoc/egismoc.c index 2deca613..05caf8d6 100644 --- a/libfprint/drivers/egismoc/egismoc.c +++ b/libfprint/drivers/egismoc/egismoc.c @@ -247,19 +247,15 @@ egismoc_cmd_ssm_done (FpiSsm *ssm, FpDevice *device, GError *error) { + g_autoptr(GError) local_error = error; FpiDeviceEgisMoc *self = FPI_DEVICE_EGISMOC (device); CommandData *data = fpi_ssm_get_data (ssm); self->cmd_ssm = NULL; self->cmd_transfer = NULL; - if (error) - { - if (data->callback) - data->callback (device, NULL, 0, error); - else - g_error_free (error); - } + if (error && data && data->callback) + data->callback (device, NULL, 0, g_steal_pointer (&local_error)); } typedef union egismoc_check_bytes