off_t index_initial_size(off_t currentsize, int nodecount)
{
currentsize += PADDING(currentsize, alignof(off_t));
- currentsize += nodecount + sizeof(off_t);
+ currentsize += nodecount * sizeof(off_t);
currentsize += PADDING(currentsize, alignof(struct avlnode));
return currentsize;
ib->t = t;
ib->nodes = (struct avlnode *)((unsigned char *)ib->nodes + diff);
ib->roots = (off_t *)((unsigned char *)ib->roots + diff);
- ib->currroot = (struct avlnode *)((unsigned char *)ib->currroot + diff);
+ if (ib->currroot)
+ ib->currroot = (struct avlnode *)
+ ((unsigned char *)ib->currroot + diff);
ib->firstmutable = (struct avlnode *)((unsigned char *)ib->firstmutable + diff);
}