Message ID | 20240919234832.24237-1-richard.weiyang@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | refine mas_end of mas_mab_cp() | expand |
* Wei Yang <richard.weiyang@gmail.com> [240919 20:40]: > mas_mab_cp() copy range [mas_start, mas_end] inclusively. For some usage, the > mas_end passed could be refined. > > Patch 1: if we know the end of a maple_node, we don't need to copy end + 1. I haven't looked too hard at patch 1, I am currently away. > Patch 2: this one tries to leverage mt_pivot_count() for optimize the code. > Patch 3: the maximum end of a maple_node is mt_pivot_count() instead of > mt_slot_count() > Patch 4: after above cleanup, we are sure mas_end won't exceed mt_pivots[], so > we can remove the check in mas_mab_cp() You are changing the generic code to only work for the current node types and I don't want to do that. I wrote it to be more generic, so now we are introducing the requirement that slots are one larger than pivots. Again, I haven't looked too closely at this but it seems like you are making the code depend on the array differences staying constant. > > Wei Yang (4): > maple_tree: not necessary to copy mas->end + 1 > maple_tree: use mt_pivot_count() to replace mt_slot_count() - 1 > maple_tree: copy to mt_pivot_count() instead of mt_slot_count() > maple_tree: now we are sure mas_end wouldn't exceed mt_pivots[mt] > > lib/maple_tree.c | 15 +++++++-------- > 1 file changed, 7 insertions(+), 8 deletions(-) > > -- > 2.34.1 >