Changeset 7467
- Timestamp:
- Dec 22, 2008, 5:35:10 PM (12 years ago)
- Location:
- trunk/libtransmission
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/list.c
r7404 r7467 78 78 } 79 79 80 void 81 tr_list_insert_sorted( tr_list ** list, 82 void * data, 83 TrListCompareFunc compare ) 84 { 85 /* find l, the node that we'll insert this data before */ 86 tr_list * l; 87 88 for( l = *list; l != NULL; l = l->next ) 89 { 90 const int c = (compare)( data, l->data ); 91 if( c <= 0 ) 92 break; 93 } 94 95 if( l == NULL ) 96 tr_list_append( list, data ); 97 else if( l == *list ) 98 tr_list_prepend( list, data ); 99 else 100 { 101 tr_list * node = node_alloc( ); 102 node->data = data; 103 if( l->prev ){ node->prev = l->prev; node->prev->next = node; } 104 node->next = l; 105 l->prev = node; 106 } 107 } 108 109 tr_list* 80 static tr_list* 110 81 tr_list_find_data( tr_list * list, 111 82 const void * data ) … … 174 145 } 175 146 176 void177 tr_list_foreach( tr_list * list,178 TrListForeachFunc func )179 {180 while( list )181 {182 func( list->data );183 list = list->next;184 }185 }186 187 147 int 188 148 tr_list_size( const tr_list * list ) -
trunk/libtransmission/list.h
r7404 r7467 49 49 TrListCompareFunc compare_func ); 50 50 51 void tr_list_insert_sorted( tr_list ** list,52 void * data,53 TrListCompareFunc compare_func );54 55 51 tr_list* tr_list_find( tr_list * list, 56 52 const void * b, 57 53 TrListCompareFunc compare_func ); 58 54 59 tr_list* tr_list_find_data( tr_list * list,60 const void * data );61 62 void tr_list_foreach( tr_list * list,63 TrListForeachFunc foreach_func );64 65 55 #endif /* TR_LIST_H */ 66 56
Note: See TracChangeset
for help on using the changeset viewer.