/* announce the close event to see if we should continue */
disc = dt->disc;
- if(disc->eventf &&
- (ev = (*disc->eventf)(dt,DT_CLOSE,NULL,disc)) < 0)
+ if (disc->eventf && (ev = disc->eventf(dt,DT_CLOSE,NULL,disc)) < 0)
return -1;
if(dt->view) /* turn off viewing */
dtview(dt,NULL);
if(ev == 0) /* release all allocated data */
- { (void)(*(dt->meth->searchf))(dt,NULL,DT_CLEAR);
+ { (void)dt->meth->searchf(dt, NULL, DT_CLEAR);
if(dtsize(dt) > 0)
return -1;
if(dt->data->ntab > 0)
- (*dt->memoryf)(dt, dt->data->htab, 0, disc);
- (*dt->memoryf)(dt, dt->data, 0, disc);
+ dt->memoryf(dt, dt->data->htab, 0, disc);
+ dt->memoryf(dt, dt->data, 0, disc);
}
if(dt->type == DT_MALLOC)
free(dt);
else if(ev == 0 && dt->type == DT_MEMORYF)
- (*dt->memoryf)(dt, dt, 0, disc);
+ dt->memoryf(dt, dt, 0, disc);
if(disc->eventf)
- (void)(*disc->eventf)(dt, DT_ENDCLOSE, NULL, disc);
+ (void)disc->eventf(dt, DT_ENDCLOSE, NULL, disc);
return 0;
}
UNFLATTEN(dt);
- if(old->eventf && (*old->eventf)(dt, DT_DISC, disc, old) < 0)
+ if (old->eventf && old->eventf(dt, DT_DISC, disc, old) < 0)
return NULL;
dt->disc = disc;
k = _DTKEY(k, disc->key, disc->size);
r->hash = _DTHSH(dt,k,disc,disc->size);
}
- (void)(*searchf)(dt, r, DT_RENEW);
+ (void)searchf(dt, r, DT_RENEW);
r = t;
}
}
n = dt->data->ntab;
if(dt->disc && dt->disc->eventf &&
- (*dt->disc->eventf)(dt, DT_HASHSIZE, &n, dt->disc) > 0 )
+ dt->disc->eventf(dt, DT_HASHSIZE, &n, dt->disc) > 0)
{ if(n < 0) /* fix table size */
{ dt->data->minp = 1;
if(dt->data->ntab > 0 )
/* allocate new table */
olds = dt->data->ntab == 0 ? NULL : dt->data->htab;
- if(!(s = (*dt->memoryf)(dt, olds, n * sizeof(Dtlink_t*), dt->disc)) )
+ if (!(s = dt->memoryf(dt, olds, n * sizeof(Dtlink_t*), dt->disc)))
return;
olds = s + dt->data->ntab;
dt->data->htab = s;
while(t)
{ r = t->right;
if(disc->freef)
- (*disc->freef)(dt,_DTOBJ(t,lk),disc);
+ disc->freef(dt, _DTOBJ(t, lk), disc);
if(disc->link < 0)
- (*dt->memoryf)(dt, t, 0, disc);
+ dt->memoryf(dt, t, 0, disc);
t = r;
}
}
return _DTOBJ(t,lk);
}
- if(disc->makef && (type&DT_INSERT) &&
- !(obj = (*disc->makef)(dt,obj,disc)) )
+ if (disc->makef && (type&DT_INSERT) && !(obj = disc->makef(dt, obj, disc)))
return NULL;
if(lk >= 0)
r = _DTLNK(obj,lk);
else
- { r = (*dt->memoryf)(dt, NULL, sizeof(Dthold_t), disc);
+ { r = dt->memoryf(dt, NULL, sizeof(Dthold_t), disc);
if(r)
((Dthold_t*)r)->obj = obj;
else
{ if(disc->makef && disc->freef && (type&DT_INSERT))
- (*disc->freef)(dt,obj,disc);
+ disc->freef(dt, obj, disc);
return NULL;
}
}
if(dt->data->ntab == 0)
{ dt->data->size -= 1;
if(disc->freef && (type&DT_INSERT))
- (*disc->freef)(dt,obj,disc);
+ disc->freef(dt,obj,disc);
if(disc->link < 0)
- (*disc->memoryf)(dt, r, 0, disc);
+ disc->memoryf(dt, r, 0, disc);
return NULL;
}
s = dt->data->htab + HINDEX(dt->data->ntab,hsh);
goto do_insert;
else
{ if(disc->freef)
- (*disc->freef)(dt,obj,disc);
+ disc->freef(dt, obj, disc);
if(disc->link < 0)
- (*dt->memoryf)(dt, r, 0, disc);
+ dt->memoryf(dt, r, 0, disc);
return t ? _DTOBJ(t,lk) : NULL;
}
}
dt->data->size -= 1;
dt->data->here = p;
if(disc->freef && (type&DT_DELETE))
- (*disc->freef)(dt,obj,disc);
+ disc->freef(dt, obj, disc);
if(disc->link < 0)
- (*dt->memoryf)(dt, t, 0, disc);
+ dt->memoryf(dt, t, 0, disc);
return obj;
}
}
{ for(r = dt->data->head; r; r = t)
{ t = r->right;
if(disc->freef)
- (*disc->freef)(dt,_DTOBJ(r,lk),disc);
+ disc->freef(dt, _DTOBJ(r, lk), disc);
if(disc->link < 0)
- (*dt->memoryf)(dt, r, 0, disc);
+ dt->memoryf(dt, r, 0, disc);
}
}
dt->data->head = dt->data->here = NULL;
}
if(type&(DT_INSERT|DT_ATTACH))
- { if(disc->makef && (type&DT_INSERT) &&
- !(obj = (*disc->makef)(dt,obj,disc)) )
+ { if (disc->makef && (type&DT_INSERT) && !(obj = disc->makef(dt, obj, disc)))
return NULL;
if(lk >= 0)
r = _DTLNK(obj,lk);
else
- { r = (*dt->memoryf)(dt, NULL, sizeof(Dthold_t), disc);
+ { r = dt->memoryf(dt, NULL, sizeof(Dthold_t), disc);
if(r)
((Dthold_t*)r)->obj = obj;
else
{ if(disc->makef && disc->freef && (type&DT_INSERT))
- (*disc->freef)(dt,obj,disc);
+ disc->freef(dt, obj, disc);
return NULL;
}
}
obj = _DTOBJ(r,lk);
if(disc->freef && (type&DT_DELETE))
- (*disc->freef)(dt,obj,disc);
+ disc->freef(dt, obj, disc);
if(disc->link < 0)
- (*dt->memoryf)(dt, r, 0, disc);
+ dt->memoryf(dt, r, 0, disc);
return obj;
}
else if(type&DT_NEXT)
if(!meth || meth->type == oldmeth->type)
return oldmeth;
- if(disc->eventf &&
- (*disc->eventf)(dt, DT_METH, meth, disc) < 0)
+ if (disc->eventf && disc->eventf(dt, DT_METH, meth, disc) < 0)
return NULL;
dt->data->minp = 0;
dt->data->head = NULL;
else if(dt->data->type&(DT_SET|DT_BAG) )
{ if(dt->data->ntab > 0)
- (*dt->memoryf)(dt, dt->data->htab, 0, disc);
+ dt->memoryf(dt, dt->data->htab, 0, disc);
dt->data->ntab = 0;
dt->data->htab = NULL;
}
{ dt->data->size = 0;
while(list)
{ r = list->right;
- (*meth->searchf)(dt, list, DT_RENEW);
+ meth->searchf(dt, list, DT_RENEW);
list = r;
}
}
key = _DTKEY(key,disc->key,disc->size);
list->hash = _DTHSH(dt,key,disc,disc->size);
}
- (void)(*meth->searchf)(dt, list, DT_RENEW);
+ (void)meth->searchf(dt, list, DT_RENEW);
list = r;
}
}
if(disc->eventf)
{ /* if shared/persistent dictionary, get existing data */
data = NULL;
- if((e = (*disc->eventf)(dt, DT_OPEN, &data, disc)) < 0)
+ if ((e = disc->eventf(dt, DT_OPEN, &data, disc)) < 0)
goto err_open;
else if(e > 0)
{ if(data)
goto err_open;
free(dt);
- if(!(dt = (*disc->memoryf)(0, 0, sizeof(Dt_t), disc)) )
+ if (!(dt = disc->memoryf(0, 0, sizeof(Dt_t), disc)))
return NULL;
dt->searchf = NULL;
dt->meth = NULL;
}
/* allocate sharable data */
- if(!(data = (dt->memoryf)(dt, NULL, sizeof(Dtdata_t), disc)) )
+ if (!(data = dt->memoryf(dt, NULL, sizeof(Dtdata_t), disc)))
{ err_open:
free(dt);
return NULL;
}
dt->data->size -= 1;
- return (*dt->meth->searchf)(dt, e, DT_RENEW) ? obj : NULL;
+ return dt->meth->searchf(dt, e, DT_RENEW) ? obj : NULL;
}
{ dt->data->size = 0;
while(list)
{ t = list->right;
- (*searchf)(dt, list, DT_RENEW);
+ searchf(dt, list, DT_RENEW);
list = t;
}
}
RROTATE(root,t);
t = root->right;
if(disc->freef)
- (*disc->freef)(dt,_DTOBJ(root,lk),disc);
+ disc->freef(dt, _DTOBJ(root, lk), disc);
if(disc->link < 0)
- (*dt->memoryf)(dt, root, 0, disc);
+ dt->memoryf(dt, root, 0, disc);
} while((root = t) );
}
dt_delete:
obj = _DTOBJ(root,lk);
if(disc->freef && (type&DT_DELETE))
- (*disc->freef)(dt,obj,disc);
+ disc->freef(dt, obj, disc);
if(disc->link < 0)
- (*dt->memoryf)(dt, root, 0, disc);
+ dt->memoryf(dt, root, 0, disc);
if((dt->data->size -= 1) < 0)
dt->data->size = -1;
goto no_root;
else if(type&DT_RENEW) /* a duplicate */
{ if(dt->meth->type&DT_OSET)
{ if(disc->freef)
- (*disc->freef)(dt,obj,disc);
+ disc->freef(dt, obj, disc);
if(disc->link < 0)
- (*dt->memoryf)(dt, me, 0, disc);
+ dt->memoryf(dt, me, 0, disc);
}
else
{ me->left = NULL;
else if(type&(DT_INSERT|DT_ATTACH))
{ dt_insert:
if(disc->makef && (type&DT_INSERT))
- obj = (*disc->makef)(dt,obj,disc);
+ obj = disc->makef(dt, obj, disc);
if(obj)
{ if(lk >= 0)
root = _DTLNK(obj,lk);
else
- { root = (*dt->memoryf)(dt, NULL, sizeof(Dthold_t), disc);
+ { root = dt->memoryf(dt, NULL, sizeof(Dthold_t), disc);
if(root)
((Dthold_t*)root)->obj = obj;
else if(disc->makef && disc->freef &&
(type&DT_INSERT))
- (*disc->freef)(dt,obj,disc);
+ disc->freef(dt, obj, disc);
}
}
if(root)
if((type&(DT_MATCH|DT_SEARCH)) || /* order sets first/last done below */
((type&(DT_FIRST|DT_LAST)) && !(dt->meth->type&(DT_OBAG|DT_OSET)) ) )
{ for(d = dt; d; d = d->view)
- if((o = (*(d->meth->searchf))(d,obj,type)) )
+ if ((o = d->meth->searchf(d, obj, type)))
break;
dt->walk = d;
return o;
n = nk = NULL; p = NULL;
for(d = dt; d; d = d->view)
- { if(!(o = (*d->meth->searchf)(d, obj, type)) )
+ { if (!(o = d->meth->searchf(d, obj, type)))
continue;
_DTDSC(d->disc,ky,sz,lk,cmpf);
ok = _DTKEY(o,ky,sz);
if(!dt->walk || obj != _DTOBJ(dt->walk->data->here, dt->walk->disc->link) )
{ for(d = dt; d; d = d->view)
- if((o = (*(d->meth->searchf))(d, obj, DT_SEARCH)) )
+ if ((o = d->meth->searchf(d, obj, DT_SEARCH)))
break;
dt->walk = d;
if(!(obj = o) )
return NULL;
}
- for(d = dt->walk, obj = (*d->meth->searchf)(d, obj, type);; )
+ for (d = dt->walk, obj = d->meth->searchf(d, obj, type);; )
{ while(obj) /* keep moving until finding an uncovered object */
{ for(p = dt; ; p = p->view)
{ if(p == d) /* adjacent object is uncovered */
return obj;
- if((*(p->meth->searchf))(p, obj, DT_SEARCH) )
+ if (p->meth->searchf(p, obj, DT_SEARCH))
break;
}
- obj = (*d->meth->searchf)(d, obj, type);
+ obj = d->meth->searchf(d, obj, type);
}
if(!(d = dt->walk = d->view) ) /* move on to next dictionary */
return NULL;
else if(type&DT_NEXT)
- obj = (*(d->meth->searchf))(d,NULL,DT_FIRST);
- else obj = (*(d->meth->searchf))(d,NULL,DT_LAST);
+ obj = d->meth->searchf(d, NULL, DT_FIRST);
+ else obj = d->meth->searchf(d, NULL, DT_LAST);
}
}
{ if(!(walk = dt->walk) )
walk = dt;
next = dtnext(dt,obj);
- if((rv = (*userf)(walk, obj, data )) < 0)
+ if ((rv = userf(walk, obj, data )) < 0)
return rv;
obj = next;
}