![]() |
Helixis 1.0
Task Programming API
|
#include "slist_internal.h"Go to the source code of this file.
Functions | |
| void | slist_delete (struct slist_state *ss) |
| void | slist_delete_all_elements (struct slist_state *ss) |
Variables | |
| hlx_api | gl_api |
| void slist_delete | ( | struct slist_state * | ss | ) |
Definition at line 6 of file slist_delete.c.
References hlx_api::aligned_free_entry, and slist_delete_all_elements().
Referenced by _destroy_channel_manager(), and hlx_event_manager_destroy().
{
slist_delete_all_elements( ss );
gl_api.aligned_free_entry( ss );
return;
}
| void slist_delete_all_elements | ( | struct slist_state * | ss | ) |
Definition at line 15 of file slist_delete.c.
References hlx_api::aligned_free_entry, slist_state::head, slist_element::next, slist_internal_init_slist(), SLIST_USER_DATA, slist_element::user_data_and_flags, slist_state::user_data_delete_function, and slist_state::user_state.
Referenced by _hlx_event_handler_destroy(), and slist_delete().
{
struct slist_element *volatile se, *volatile se_temp;
se = ss->head;
while( se != 0 )
{
/* TRD : if a non-deleted element and there is a delete function, call the delete function */
if( ss->user_data_delete_function != 0 )
ss->user_data_delete_function( (void *) se->user_data_and_flags[SLIST_USER_DATA], ss->user_state );
se_temp = se;
se = se->next;
gl_api.aligned_free_entry( (void *) se_temp );
}
slist_internal_init_slist( ss, ss->user_data_delete_function, ss->user_state );
return;
}
1.7.4