From: Liam R. Howlett Date: Mon, 7 Dec 2020 21:00:16 +0000 (-0500) Subject: maple_tree: Save maple_type in mast_topiary() X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f0e1f9bc3f55a165258a7b08a62cae9be51874e5;p=users%2Fjedix%2Flinux-maple.git maple_tree: Save maple_type in mast_topiary() It is used more than once Signed-off-by: Liam R. Howlett --- diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 2b012ec9b1b8..76e13b804560 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1836,18 +1836,18 @@ static inline void mast_topiary(struct maple_subtree_state *mast) 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; @@ -1858,9 +1858,8 @@ static inline void mast_topiary(struct maple_subtree_state *mast) /* 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;