]> pd.if.org Git - liblfds/blob - liblfds/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds6.1.1 / liblfds611 / src / lfds611_stack / lfds611_stack_delete.c
1 #include "lfds611_stack_internal.h"\r
2 \r
3 \r
4 \r
5 \r
6 \r
7 /****************************************************************************/\r
8 void lfds611_stack_delete( struct lfds611_stack_state *ss, void (*user_data_delete_function)(void *user_data, void *user_state), void *user_state )\r
9 {\r
10   void\r
11     *user_data;\r
12 \r
13   assert( ss != NULL );\r
14   // TRD : user_data_delete_function can be NULL\r
15   // TRD : user_state can be NULL\r
16 \r
17   while( lfds611_stack_pop(ss, &user_data) )\r
18     if( user_data_delete_function != NULL )\r
19       user_data_delete_function( user_data, user_state );\r
20 \r
21   lfds611_freelist_delete( ss->fs, lfds611_stack_internal_freelist_delete_function, NULL );\r
22 \r
23   lfds611_liblfds_aligned_free( ss );\r
24 \r
25   return;\r
26 }\r
27 \r
28 \r
29 \r
30 \r
31 \r
32 /****************************************************************************/\r
33 void lfds611_stack_clear( struct lfds611_stack_state *ss, void (*user_data_clear_function)(void *user_data, void *user_state), void *user_state )\r
34 {\r
35   void\r
36     *user_data;\r
37 \r
38   assert( ss != NULL );\r
39   // TRD : user_data_clear_function can be NULL\r
40   // TRD : user_state can be NULL\r
41 \r
42   while( lfds611_stack_pop(ss, &user_data) )\r
43     if( user_data_clear_function != NULL )\r
44       user_data_clear_function( user_data, user_state );\r
45 \r
46   return;\r
47 }\r
48 \r
49 \r
50 \r
51 \r
52 \r
53 /****************************************************************************/\r
54 #pragma warning( disable : 4100 )\r
55 \r
56 void lfds611_stack_internal_freelist_delete_function( void *user_data, void *user_state )\r
57 {\r
58   assert( user_data != NULL );\r
59   assert( user_state == NULL );\r
60 \r
61   lfds611_liblfds_aligned_free( user_data );\r
62 \r
63   return;\r
64 }\r
65 \r
66 #pragma warning( default : 4100 )\r
67 \r