diff options
Diffstat (limited to 'src/glibext/linesegment.c')
-rw-r--r-- | src/glibext/linesegment.c | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/src/glibext/linesegment.c b/src/glibext/linesegment.c index 557dff2..15fde78 100644 --- a/src/glibext/linesegment.c +++ b/src/glibext/linesegment.c @@ -148,6 +148,8 @@ struct _segcnt_list fnv64_t *hashes; /* Empreinte pour comparaisons */ size_t count; /* Nommbre de ces empreintes */ + unsigned int ref_count; /* Compteur de références */ + }; @@ -970,7 +972,12 @@ segcnt_list *init_segment_content_list(void) { segcnt_list *result; /* Structure à retourner */ - result = (segcnt_list *)calloc(1, sizeof(segcnt_list)); + result = malloc(sizeof(segcnt_list)); + + result->hashes = NULL; + result->count = 0; + + result->ref_count = 1; return result; @@ -991,6 +998,8 @@ segcnt_list *init_segment_content_list(void) void exit_segment_content_list(segcnt_list *list) { + assert(list->ref_count == 0); + reset_segment_content_list(list); free(list); @@ -1000,6 +1009,48 @@ void exit_segment_content_list(segcnt_list *list) /****************************************************************************** * * +* Paramètres : list = ensemble de références de contenus à traiter. * +* * +* Description : Incrémente le nombre d'utilisation de la liste de contenus. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void ref_segment_content_list(segcnt_list *list) +{ + assert(list->ref_count > 0); + + list->ref_count++; + +} + + +/****************************************************************************** +* * +* Paramètres : list = ensemble de références de contenus à traiter. * +* * +* Description : Décrémente le nombre d'utilisation de la liste de contenus. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void unref_segment_content_list(segcnt_list *list) +{ + assert(list->ref_count > 0); + + list->ref_count--; + +} + + +/****************************************************************************** +* * * Paramètres : list = ensemble de références de contenus à manipuler. * * * * Description : Vide, si besoin est, une liste de contenus de segments. * |