summaryrefslogtreecommitdiff
path: root/src/gui/panels/updating.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/panels/updating.c')
-rw-r--r--src/gui/panels/updating.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gui/panels/updating.c b/src/gui/panels/updating.c
index 15955dc..2dec844 100644
--- a/src/gui/panels/updating.c
+++ b/src/gui/panels/updating.c
@@ -219,6 +219,32 @@ void g_updatable_panel_conclude(GUpdatablePanel *panel, unsigned int uid, void *
}
+/******************************************************************************
+* *
+* Paramètres : panel = panneau ciblé par une mise à jour. *
+* uid = identifiant de la phase de traitement. *
+* data = données en place à nettoyer avant suppression. *
+* *
+* Description : Supprime les données dynamiques utilisées à la mise à jour. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_updatable_panel_clean_data(GUpdatablePanel *panel, unsigned int uid, void *data)
+{
+ GUpdatablePanelIface *iface; /* Interface utilisée */
+
+ iface = G_UPDATABLE_PANEL_GET_IFACE(panel);
+
+ if (iface->clean != NULL && data != NULL)
+ iface->clean(panel, uid, data);
+
+}
+
+
/* ---------------------------------------------------------------------------------- */
/* AIDE POUR LA MISE A JOUR */
@@ -311,6 +337,8 @@ static void g_panel_update_dispose(GPanelUpdate *update)
static void g_panel_update_finalize(GPanelUpdate *update)
{
+ g_updatable_panel_clean_data(update->panel, update->uid, update->data);
+
if (update->data != NULL)
free(update->data);