]> pd.if.org Git - liblfds/blob - liblfds/liblfds6.0.1/liblfds601/src/lfds601_freelist/lfds601_freelist_delete.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds6.0.1 / liblfds601 / src / lfds601_freelist / 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