]> pd.if.org Git - liblfds/blob - liblfds/liblfds6.0.0/liblfds600/src/lfds600_freelist/lfds600_freelist_delete.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds6.0.0 / liblfds600 / src / lfds600_freelist / lfds600_freelist_delete.c
1 #include "lfds600_freelist_internal.h"
2
3
4
5
6
7 /****************************************************************************/
8 void lfds600_freelist_delete( struct lfds600_freelist_state *fs, void (*user_data_delete_function)(void *user_data, void *user_state), void *user_state )
9 {
10   struct lfds600_freelist_element
11     *fe;
12
13   void
14     *user_data;
15
16   assert( fs != NULL );
17   // TRD : user_data_delete_function can be NULL
18   // TRD : user_state can be NULL
19
20   while( lfds600_freelist_pop(fs, &fe) )
21   {
22     if( user_data_delete_function != NULL )
23     {
24       lfds600_freelist_get_user_data_from_element( fe, &user_data );
25       user_data_delete_function( user_data, user_state );
26     }
27
28     lfds600_abstraction_aligned_free( fe );
29   }
30
31   lfds600_abstraction_aligned_free( fs );
32
33   return;
34 }
35