]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
maple_tree: Save maple_type in mast_topiary()
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Mon, 7 Dec 2020 21:00:16 +0000 (16:00 -0500)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Tue, 5 Jan 2021 17:33:35 +0000 (12:33 -0500)
It is used more than once

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
lib/maple_tree.c

index 2b012ec9b1b8a268ac889fa7a8bb96dd05ce07c7..76e13b804560d676629995d0610303f61be09001 100644 (file)
@@ -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;