int owlist_free_all ( OWList * list, void (* free_element) (void *) ) { int return_code = 0 ; OWListIterator * iterator ; void * element ; iterator = owlist_iterator_new (list, OWLIST_WRITE) ; if (iterator != NULL) { while (owlist_iterator_next (iterator) == 0) { element = owlist_iterator_get (iterator) ; return_code |= owlist_iterator_remove (iterator) ; free_element (element) ; /* if free_element has a return code, it cannot be tested */ } return_code |= owlist_iterator_free (iterator) ; } return_code |= owlist_free (list) ; return return_code ; }
static OWSLSocket transport_socket_get_next ( OWSLSocketType implementation, OWListIterator * list_iterator ) { OWSLSocket found_socket = -1 ; OWSLSocket * socket ; while (owlist_iterator_next (list_iterator) == 0) { socket = owlist_iterator_get (list_iterator) ; if (owsl_type_get (* socket) == implementation) { found_socket = * socket ; break ; } } return found_socket ; }