}
wr_mas->node = mas_mn(wr_mas->mas);
- count = wr_mas->node_end = mas_data_end(mas);
- offset = mas->offset;
wr_mas->pivots = ma_pivots(wr_mas->node, wr_mas->type);
+ count = wr_mas->node_end = ma_data_end(wr_mas->node, wr_mas->type,
+ wr_mas->pivots, mas->max);
+ offset = mas->offset;
min = mas_safe_min(mas, wr_mas->pivots, offset);
max = wr_mas->pivots[offset];
if (unlikely(offset == count))
node = mas_mn(mas);
slots = ma_slots(node, mt);
pivots = ma_pivots(node, mt);
- offset = mas_data_end(mas);
+ offset = ma_data_end(node, mt, pivots, mas->max);
if (offset)
mas->min = pivots[offset - 1] + 1;
}
enode = mas_slot(mas, slots, offset);
- offset = mas_data_end(mas);
+ offset = ma_data_end(node, mt, pivots, mas->max);
if (unlikely(ma_dead_node(node)))
return 1;
static inline bool mas_tree_walk(struct ma_state *mas, unsigned long *range_min,
unsigned long *range_max)
{
-
- void *entry;
bool ret;
retry:
ret = false;
- entry = mas_start(mas);
- if (entry)
- return true;
-
+ mas_start(mas);
if (mas_is_none(mas))
goto not_found;