diff --git a/src/libcollections/btree/node.rs b/src/libcollections/btree/node.rs index 2e2a39df3477a..62e85cb64a1f0 100644 --- a/src/libcollections/btree/node.rs +++ b/src/libcollections/btree/node.rs @@ -1022,6 +1022,8 @@ impl<'a, K, V> Handle, K, V, marker::Internal>, marker:: } self.node.as_leaf_mut().len -= 1; + left_node.as_leaf_mut().len += right_len as u16 + 1; + if self.node.height > 1 { ptr::copy_nonoverlapping( right_node.cast_unchecked().as_internal().edges.as_ptr(), @@ -1053,8 +1055,6 @@ impl<'a, K, V> Handle, K, V, marker::Internal>, marker:: ); } - left_node.as_leaf_mut().len += right_len as u16 + 1; - Handle::new_edge(self.node, self.idx) } }