Wrap text
Report abuse
|
|
int dleaf_isinorder(BTREE, struct dleaf *leaf)
{
struct group *gdict = (void *)leaf + btree->sb->blocksize;
struct entry *edict = (void *)(gdict - leaf->groups);
u64 prevkey = 0, curkey;
for (int grp = -1; grp >= -leaf->groups; grp--)
for (int ent = -1, prevlimit = 0; ent >= -gdict[grp].count; prevkey = curkey, prevlimit = edict[ent--].limit)
if (edict[ent].limit < prevlimit)
return 0;
else if ((curkey = ((L)gdict[grp].loghi) << 24 | edict[ent].loglo) < prevkey)
return 0;
return 1;
}
|