Lines Matching defs:dt
31 static Void_t* dtvsearch(Dt_t* dt, reg Void_t* obj, reg int type)
33 static Void_t* dtvsearch(dt,obj,type)
34 Dt_t* dt;
46 return (*(dt->meth->searchf))(dt,obj,type);
49 ((type&(DT_FIRST|DT_LAST)) && !(dt->meth->type&(DT_OBAG|DT_OSET)) ) )
50 { for(d = dt; d; d = d->view)
53 dt->walk = d;
57 if(dt->meth->type & (DT_OBAG|DT_OSET) )
62 for(d = dt; d; d = d->view)
81 dt->walk = p;
89 if(!dt->walk || obj != _DTOBJ(dt->walk->data->here, dt->walk->disc->link) )
90 { for(d = dt; d; d = d->view)
93 dt->walk = d;
98 for(d = dt->walk, obj = (*d->meth->searchf)(d, obj, type);; )
100 { for(p = dt; ; p = p->view)
109 if(!(d = dt->walk = d->view) ) /* move on to next dictionary */
118 Dt_t* dtview(reg Dt_t* dt, reg Dt_t* view)
120 Dt_t* dtview(dt,view)
121 reg Dt_t* dt;
127 UNFLATTEN(dt);
130 if(view->meth != dt->meth) /* must use the same method */
136 if(d == dt)
140 if((d = dt->view) )
142 dt->view = dt->walk = NIL(Dt_t*);
145 { dt->searchf = dt->meth->searchf;
150 dt->view = view;
151 dt->searchf = dtvsearch;