}
-static int xdl_classify_record(unsigned int pass, xdlclassifier_t *cf, xrecord_t **rhash,
- unsigned int hbits, xrecord_t *rec) {
+static int xdl_classify_record(unsigned int pass, xdlclassifier_t *cf, xrecord_t *rec) {
long hi;
char const *line;
xdlclass_t *rcrec;
rec->ha = (unsigned long) rcrec->idx;
- hi = (long) XDL_HASHLONG(rec->ha, hbits);
- rec->next = rhash[hi];
- rhash[hi] = rec;
-
return 0;
}
static void xdl_free_ctx(xdfile_t *xdf)
{
- xdl_free(xdf->rhash);
xdl_free(xdf->rindex);
xdl_free(xdf->rchg - 1);
xdl_free(xdf->ha);
xdf->ha = NULL;
xdf->rindex = NULL;
xdf->rchg = NULL;
- xdf->rhash = NULL;
xdf->recs = NULL;
if (xdl_cha_init(&xdf->rcha, sizeof(xrecord_t), narec / 4 + 1) < 0)
if (!XDL_ALLOC_ARRAY(xdf->recs, narec))
goto abort;
- xdf->hbits = xdl_hashbits((unsigned int) narec);
- if (!XDL_CALLOC_ARRAY(xdf->rhash, 1 << xdf->hbits))
- goto abort;
-
xdf->nrec = 0;
if ((cur = blk = xdl_mmfile_first(mf, &bsize))) {
for (top = blk + bsize; cur < top; ) {
crec->size = (long) (cur - prev);
crec->ha = hav;
xdf->recs[xdf->nrec++] = crec;
- if (xdl_classify_record(pass, cf, xdf->rhash, xdf->hbits, crec) < 0)
+ if (xdl_classify_record(pass, cf, crec) < 0)
goto abort;
}
}