Skip to content

Commit 28b2911

Browse files
authored
Merge pull request #62 from Coder-256/initialize-header
Initialize the header before calling `set_cap()`/`set_len()`
2 parents a49d37c + f1037f6 commit 28b2911

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/lib.rs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -454,13 +454,18 @@ fn header_with_capacity<T>(cap: usize) -> NonNull<Header> {
454454
handle_alloc_error(layout)
455455
}
456456

457-
// "Infinite" capacity for zero-sized types:
458-
(*header).set_cap(if mem::size_of::<T>() == 0 {
459-
MAX_CAP
460-
} else {
461-
cap
462-
});
463-
(*header).set_len(0);
457+
ptr::write(
458+
header,
459+
Header {
460+
_len: 0,
461+
_cap: if mem::size_of::<T>() == 0 {
462+
// "Infinite" capacity for zero-sized types:
463+
MAX_CAP
464+
} else {
465+
cap
466+
},
467+
},
468+
);
464469

465470
NonNull::new_unchecked(header)
466471
}

0 commit comments

Comments
 (0)