The pointer in the slice must not be null, because enum representations make that assumption. The `exchange_malloc` function returns a non-null sentinel for the zero size case, and it must not be passed to the `exchange_free` lang item. Since the length is always equal to the true capacity, a branch on the length is enough for most types. Slices of zero size types are statically special cased to never attempt deallocation. This is the same implementation as `Vec<T>`. Closes #14395 |
||
|---|---|---|
| .. | ||
| arc.rs | ||
| boxed.rs | ||
| heap.rs | ||
| lib.rs | ||
| libc_heap.rs | ||
| rc.rs | ||
| util.rs | ||