Skip to content

Commit 42e03f4

Browse files
authored
Merge pull request #646 from sanpeqf/fixup-radix
fixup radix: fixed radix iterators arithmetic issue
2 parents 06d89ad + e61fe7b commit 42e03f4

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

src/radix.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -402,15 +402,16 @@ bfdev_radix_root_next(bfdev_radix_root_t *root, uintptr_t *offsetp)
402402
node = parents[level].node;
403403
index = parents[level].index;
404404

405+
count = radix_depth_shift(level - 1);
406+
*offsetp &= ~((uintptr_t)RADIX_ARY_MASK << count);
407+
405408
while (++index < BFDEV_RADIX_ARY) {
406409
if (!node->child[index])
407410
continue;
408411

409-
count = radix_depth_shift(level - 1);
410-
*offsetp &= ~((uintptr_t)RADIX_ARY_MASK << count);
411412
*offsetp |= (uintptr_t)index << count;
412-
413413
node = node->child[index];
414+
414415
goto downward;
415416
}
416417
}
@@ -457,15 +458,16 @@ bfdev_radix_root_prev(bfdev_radix_root_t *root, uintptr_t *offsetp)
457458
node = parents[level].node;
458459
index = parents[level].index;
459460

461+
count = radix_depth_shift(level - 1);
462+
*offsetp &= ~((uintptr_t)RADIX_ARY_MASK << count);
463+
460464
while (index--) {
461465
if (!node->child[index])
462466
continue;
463467

464-
count = radix_depth_shift(level - 1);
465-
*offsetp &= ~((uintptr_t)RADIX_ARY_MASK << count);
466468
*offsetp |= (uintptr_t)index << count;
467-
468469
node = node->child[index];
470+
469471
goto downward;
470472
}
471473
}

src/rbtree.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -542,8 +542,7 @@ bfdev_rb_replace(bfdev_rb_root_t *root, bfdev_rb_node_t *oldn,
542542
}
543543

544544
export bfdev_rb_node_t *
545-
bfdev_rb_find(const bfdev_rb_root_t *root, void *key,
546-
bfdev_rb_find_t find)
545+
bfdev_rb_find(const bfdev_rb_root_t *root, void *key, bfdev_rb_find_t find)
547546
{
548547
bfdev_rb_node_t *node;
549548
long retval;

0 commit comments

Comments
 (0)