about summary refs log tree commit diff
path: root/library/alloc/src
diff options
context:
space:
mode:
authorMarijn Schouten <mhkbst@gmail.com>2025-09-21 12:05:09 +0000
committerMarijn Schouten <mhkbst@gmail.com>2025-09-21 12:05:09 +0000
commit2dfcd0948e0dc1608a04e35d2f1812a21cf45b7a (patch)
tree348b7e71c57626c7d4b6aa6ea7cba4fbb158b56e /library/alloc/src
parent1d23da6b7304d9e2a2c3dcb1b0aaa709cb9bc4ad (diff)
downloadrust-2dfcd0948e0dc1608a04e35d2f1812a21cf45b7a.tar.gz
rust-2dfcd0948e0dc1608a04e35d2f1812a21cf45b7a.zip
btree InternalNode::new safety comments
Diffstat (limited to 'library/alloc/src')
-rw-r--r--library/alloc/src/collections/btree/node.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/library/alloc/src/collections/btree/node.rs b/library/alloc/src/collections/btree/node.rs
index b233e1740b7..2b8103c8b77 100644
--- a/library/alloc/src/collections/btree/node.rs
+++ b/library/alloc/src/collections/btree/node.rs
@@ -117,10 +117,11 @@ impl<K, V> InternalNode<K, V> {
     /// initialized and valid edge. This function does not set up
     /// such an edge.
     unsafe fn new<A: Allocator + Clone>(alloc: A) -> Box<Self, A> {
+        let mut node = Box::<Self, _>::new_uninit_in(alloc);
         unsafe {
-            let mut node = Box::<Self, _>::new_uninit_in(alloc);
-            // We only need to initialize the data; the edges are MaybeUninit.
+            // SAFETY: argument points to the `node.data` `LeafNode`
             LeafNode::init(&raw mut (*node.as_mut_ptr()).data);
+            // SAFETY: `node.data` was just initialized and `node.edges` is MaybeUninit.
             node.assume_init()
         }
     }