mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-09-10 21:06:51 +00:00
mafpmoc: Ensure the current task SSM reference is always cleaned up
This commit is contained in:
@@ -663,13 +663,15 @@ fp_init_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||
{
|
||||
FpiDeviceMafpmoc *self = FPI_DEVICE_MAFPMOC (dev);
|
||||
|
||||
self->task_ssm = NULL;
|
||||
|
||||
if (error)
|
||||
{
|
||||
fp_dbg ("%d %s", error->code, error->message);
|
||||
fpi_device_open_complete (dev, g_steal_pointer (&error));
|
||||
return;
|
||||
}
|
||||
self->task_ssm = NULL;
|
||||
|
||||
fpi_device_open_complete (dev, NULL);
|
||||
}
|
||||
|
||||
@@ -1365,17 +1367,18 @@ fp_enroll_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||
FpiDeviceMafpmoc *self = FPI_DEVICE_MAFPMOC (dev);
|
||||
FpPrint *print = NULL;
|
||||
|
||||
self->task_ssm = NULL;
|
||||
|
||||
if (error)
|
||||
{
|
||||
fp_dbg ("enroll done fail");
|
||||
fpi_device_enroll_complete (dev, NULL, error);
|
||||
fpi_device_enroll_complete (dev, NULL, g_steal_pointer (&error));
|
||||
return;
|
||||
}
|
||||
fp_dbg ("enroll completed");
|
||||
|
||||
fp_dbg ("enroll completed");
|
||||
fpi_device_get_enroll_data (dev, &print);
|
||||
fpi_device_enroll_complete (dev, g_object_ref (print), NULL);
|
||||
self->task_ssm = NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -1863,6 +1866,8 @@ fp_verify_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||
fp_dbg ("verify completed");
|
||||
FpiDeviceMafpmoc *self = FPI_DEVICE_MAFPMOC (dev);
|
||||
|
||||
self->task_ssm = NULL;
|
||||
|
||||
if (error && error->domain == FP_DEVICE_RETRY)
|
||||
{
|
||||
if (fpi_device_get_current_action (dev) == FPI_DEVICE_ACTION_VERIFY)
|
||||
@@ -1883,7 +1888,6 @@ fp_verify_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||
self->enroll_dupl_del_state ? self->identify_new_print : NULL, NULL);
|
||||
fpi_device_identify_complete (dev, error);
|
||||
}
|
||||
self->task_ssm = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1978,6 +1982,8 @@ fp_list_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||
{
|
||||
FpiDeviceMafpmoc *self = FPI_DEVICE_MAFPMOC (dev);
|
||||
|
||||
self->task_ssm = NULL;
|
||||
|
||||
if (error)
|
||||
{
|
||||
fp_dbg ("list tpl fail");
|
||||
@@ -1985,8 +1991,8 @@ fp_list_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||
fpi_device_list_complete (dev, NULL, g_steal_pointer (&error));
|
||||
return;
|
||||
}
|
||||
|
||||
fpi_device_list_complete (FP_DEVICE (self), g_steal_pointer (&self->templates->list), NULL);
|
||||
self->task_ssm = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2160,15 +2166,14 @@ fp_delete_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||
{
|
||||
FpiDeviceMafpmoc *self = FPI_DEVICE_MAFPMOC (dev);
|
||||
|
||||
if (error)
|
||||
{
|
||||
fp_dbg ("delete tpl fail");
|
||||
fpi_device_delete_complete (dev, error);
|
||||
return;
|
||||
}
|
||||
fp_dbg ("delete tpl success");
|
||||
fpi_device_delete_complete (dev, NULL);
|
||||
self->task_ssm = NULL;
|
||||
|
||||
if (error)
|
||||
fp_dbg ("delete tpl fail: %s", error->message);
|
||||
else
|
||||
fp_dbg ("delete tpl success");
|
||||
|
||||
fpi_device_delete_complete (dev, g_steal_pointer (&error));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2212,15 +2217,14 @@ fp_delete_all_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||
{
|
||||
FpiDeviceMafpmoc *self = FPI_DEVICE_MAFPMOC (dev);
|
||||
|
||||
if (error)
|
||||
{
|
||||
fp_dbg ("delete all fail");
|
||||
fpi_device_clear_storage_complete (dev, g_steal_pointer (&error));
|
||||
return;
|
||||
}
|
||||
fp_dbg ("delete all success");
|
||||
fpi_device_clear_storage_complete (dev, NULL);
|
||||
self->task_ssm = NULL;
|
||||
|
||||
if (error)
|
||||
fp_dbg ("delete all fail: %s", error->message);
|
||||
else
|
||||
fp_dbg ("delete all success");
|
||||
|
||||
fpi_device_clear_storage_complete (dev, g_steal_pointer (&error));
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Reference in New Issue
Block a user