Lines Matching refs:list

169   FTC_MruList_Init( FTC_MruList       list,
175 list->num_nodes = 0;
176 list->max_nodes = max_nodes;
177 list->nodes = NULL;
178 list->clazz = *clazz;
179 list->data = data;
180 list->memory = memory;
185 FTC_MruList_Reset( FTC_MruList list )
187 while ( list->nodes )
188 FTC_MruList_Remove( list, list->nodes );
190 FT_ASSERT( list->num_nodes == 0 );
195 FTC_MruList_Done( FTC_MruList list )
197 FTC_MruList_Reset( list );
203 FTC_MruList_Find( FTC_MruList list,
206 FTC_MruNode_CompareFunc compare = list->clazz.node_compare;
210 first = list->nodes;
221 FTC_MruNode_Up( &list->nodes, node );
236 FTC_MruList_New( FTC_MruList list,
242 FT_Memory memory = list->memory;
245 if ( list->num_nodes >= list->max_nodes && list->max_nodes > 0 )
247 node = list->nodes->prev;
251 if ( list->clazz.node_reset )
253 FTC_MruNode_Up( &list->nodes, node );
255 error = list->clazz.node_reset( node, key, list->data );
260 FTC_MruNode_Remove( &list->nodes, node );
261 list->num_nodes--;
263 if ( list->clazz.node_done )
264 list->clazz.node_done( node, list->data );
266 else if ( FT_ALLOC( node, list->clazz.node_size ) )
269 error = list->clazz.node_init( node, key, list->data );
273 FTC_MruNode_Prepend( &list->nodes, node );
274 list->num_nodes++;
281 if ( list->clazz.node_done )
282 list->clazz.node_done( node, list->data );
291 FTC_MruList_Lookup( FTC_MruList list,
298 node = FTC_MruList_Find( list, key );
300 return FTC_MruList_New( list, key, anode );
308 FTC_MruList_Remove( FTC_MruList list,
311 FTC_MruNode_Remove( &list->nodes, node );
312 list->num_nodes--;
315 FT_Memory memory = list->memory;
318 if ( list->clazz.node_done )
319 list->clazz.node_done( node, list->data );
327 FTC_MruList_RemoveSelection( FTC_MruList list,
334 first = list->nodes;
337 FTC_MruList_Remove( list, first );
338 first = list->nodes;
349 FTC_MruList_Remove( list, node );