]> pd.if.org Git - liblfds/blob - lfds601_freelist_delete.c
c0e24166892fc9021bb5a0b759ae627e8fafdecb
[liblfds] / lfds601_freelist_delete.c
1 #include "lfds601_freelist_internal.h"\r
2 \r
3 \r
4 \r
5 \r
6 \r
7 /****************************************************************************/\r
8 void lfds601_freelist_delete( struct lfds601_freelist_state *fs, void (*user_data_delete_function)(void *user_data, void *user_state), void *user_state )\r
9 {\r
10   struct lfds601_freelist_element\r
11     *fe;\r
12 \r
13   void\r
14     *user_data;\r
15 \r
16   assert( fs != NULL );\r
17   // TRD : user_data_delete_function can be NULL\r
18   // TRD : user_state can be NULL\r
19 \r
20   while( lfds601_freelist_pop(fs, &fe) )\r
21   {\r
22     if( user_data_delete_function != NULL )\r
23     {\r
24       lfds601_freelist_get_user_data_from_element( fe, &user_data );\r
25       user_data_delete_function( user_data, user_state );\r
26     }\r
27 \r
28     lfds601_abstraction_aligned_free( fe );\r
29   }\r
30 \r
31   lfds601_abstraction_aligned_free( fs );\r
32 \r
33   return;\r
34 }\r
35 \r