if (mt_in_rcu(wr_mas->mas->tree))
return false;
- mab_mas_cp(bn, 0, bn->b_end, wr_mas->mas, false);
if (end > bn->b_end) {
- char clear = mt_slots[wr_mas->type] - bn->b_end - 2;
-
- if (bn->pivot[bn->b_end] != wr_mas->mas->max)
- clear++;
-
- /* Zero end of node. */
- if (clear > 0) {
- memset(wr_mas->slots + bn->b_end+1, 0,
+ int clear = mt_slots[wr_mas->type] - bn->b_end;
+ memset(wr_mas->slots + bn->b_end, 0,
+ sizeof(void *) * clear--);
+ memset(wr_mas->pivots + bn->b_end, 0,
sizeof(void *) * clear);
- memset(wr_mas->pivots + bn->b_end+1, 0,
- sizeof(unsigned long *) * clear);
- }
}
-
+ mab_mas_cp(bn, 0, bn->b_end, wr_mas->mas, false);
return true;
}