unsigned long l_index, range_min, range_max;
struct maple_enode *child;
void **slots;
+ enum maple_type mt;
// The left node is consumed, so add to the free list.
l_index = mast->orig_l->index;
mast->orig_l->index = mast->orig_l->last;
- mas_node_walk(mast->orig_l, mte_node_type(mast->orig_l->node),
- &range_min, &range_max);
+ mt = mte_node_type(mast->orig_l->node);
+ mas_node_walk(mast->orig_l, mt, &range_min, &range_max);
mast->orig_l->index = l_index;
l_off = mast->orig_l->offset;
r_off = mast->orig_r->offset;
if (mast->orig_l->node == mast->orig_r->node) {
- slots = ma_slots(mte_to_node(mast->orig_l->node),
- mte_node_type(mast->orig_l->node));
+ slots = ma_slots(mte_to_node(mast->orig_l->node), mt);
for (offset = l_off + 1; offset < r_off; offset++)
mat_add(mast->destroy, slots[offset]);
return;
/* Now destroy l_off + 1 -> end and 0 -> r_off - 1 */
offset = l_off + 1;
- slots = ma_slots(mte_to_node(mast->orig_l->node),
- mte_node_type(mast->orig_l->node));
- while (offset < mt_slot_count(mast->orig_l->node)) {
+ slots = ma_slots(mte_to_node(mast->orig_l->node), mt);
+ while (offset < mt_slots[mt]) {
child = slots[offset++];
if (!child)
break;