1 #include "lfds601_stack_internal.h"
\r
7 /****************************************************************************/
\r
8 void lfds601_stack_delete( struct lfds601_stack_state *ss, void (*user_data_delete_function)(void *user_data, void *user_state), void *user_state )
\r
13 assert( ss != NULL );
\r
14 // TRD : user_data_delete_function can be NULL
\r
15 // TRD : user_state can be NULL
\r
17 while( lfds601_stack_pop(ss, &user_data) )
\r
18 if( user_data_delete_function != NULL )
\r
19 user_data_delete_function( user_data, user_state );
\r
21 lfds601_freelist_delete( ss->fs, lfds601_stack_internal_freelist_delete_function, NULL );
\r
23 lfds601_abstraction_aligned_free( ss );
\r
32 /****************************************************************************/
\r
33 void lfds601_stack_clear( struct lfds601_stack_state *ss, void (*user_data_clear_function)(void *user_data, void *user_state), void *user_state )
\r
38 assert( ss != NULL );
\r
39 // TRD : user_data_clear_function can be NULL
\r
40 // TRD : user_state can be NULL
\r
42 while( lfds601_stack_pop(ss, &user_data) )
\r
43 if( user_data_clear_function != NULL )
\r
44 user_data_clear_function( user_data, user_state );
\r
53 /****************************************************************************/
\r
54 #pragma warning( disable : 4100 )
\r
56 void lfds601_stack_internal_freelist_delete_function( void *user_data, void *user_state )
\r
58 assert( user_data != NULL );
\r
59 assert( user_state == NULL );
\r
61 lfds601_abstraction_aligned_free( user_data );
\r
66 #pragma warning( default : 4100 )
\r