Lines Matching defs:list
23 /* Get a list of objects from a sorting context.
35 #define ADDOBJ(list,tail,obj) (tail = tail ? (tail->right = obj) : (list = obj) )
38 ** Ties are broken by list positions to preserve stability.
41 static int uninsert(Union_t** list, int n, Union_t* un)
43 static int uninsert(list, n, un)
44 Union_t** list;
54 r = (l = list) + n;
88 { for(r = list+n; r > l; --r)
107 reg Rsobj_t *obj, *o, *e, *list, *tail;
128 list = tail = NIL(Rsobj_t*);
131 if(n_list == 0 && !un->equi) /* last unmerged list */
133 ADDOBJ(list,tail,obj);
144 /* union with equal list of obj */
156 ADDOBJ(list,tail,obj);
165 ADDOBJ(list,tail,obj);
202 return list;
212 reg Rsobj_t *list, *next, *p, *r, *t, *e;
219 if((list = (*rs->meth->listf)(rs)) && rs->n_list > 0)
220 { rs->list = (Rsobj_t**)vmresize(rs->vm,
221 rs->list, (rs->n_list+1)*sizeof(Rsobj_t*),
223 if(!rs->list)
225 rs->list[rs->n_list] = list;
230 { list = rs->n_list > 1 ? unionize(rs->list,rs->n_list) : rs->list[0];
232 vmfree(rs->vm,rs->list);
233 rs->list = NIL(Rsobj_t**);
238 { for(r = list; r; r = r->right)
246 for(p = NIL(Rsobj_t*), r = list; r; r = t)
277 else list = r;
308 { for(p = NIL(Rsobj_t*), r = list; r; r = t)
311 if((e = r->equal) ) /* invert equal list */
313 for(list = r, ende = e->left; e != ende; e = next)
315 e->right = list;
316 list = e;
318 list->left = r; r->right = NIL(Rsobj_t*);
319 r = ende; r->equal = list;
325 list = p;
328 if((rs->sorted = list) )
330 return list;