rustdoc: Add some basic Safety sections to unsafe functions (#31639)

This commit is contained in:
Martin Robinson 2024-03-13 11:44:59 +01:00 committed by GitHub
parent 0860deba05
commit 38db1a5ce9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 22 additions and 0 deletions

View file

@ -16,6 +16,10 @@ mod platform {
pub use jemallocator::Jemalloc as Allocator;
/// Get the size of a heap block.
///
/// # Safety
///
/// Passing a non-heap allocated pointer to this function results in undefined behavior.
pub unsafe extern "C" fn usable_size(ptr: *const c_void) -> usize {
jemallocator::usable_size(ptr)
}
@ -35,6 +39,10 @@ mod platform {
use std::os::raw::c_void;
/// Get the size of a heap block.
///
/// # Safety
///
/// Passing a non-heap allocated pointer to this function results in undefined behavior.
pub unsafe extern "C" fn usable_size(ptr: *const c_void) -> usize {
#[cfg(target_vendor = "apple")]
return libc::malloc_size(ptr);
@ -56,6 +64,10 @@ mod platform {
use winapi::um::heapapi::{GetProcessHeap, HeapSize, HeapValidate};
/// Get the size of a heap block.
///
/// # Safety
///
/// Passing a non-heap allocated pointer to this function results in undefined behavior.
pub unsafe extern "C" fn usable_size(mut ptr: *const c_void) -> usize {
let heap = GetProcessHeap();

View file

@ -47,6 +47,11 @@ pub struct ShapedGlyphEntry {
}
impl ShapedGlyphData {
/// Create a new [`SharedGlyphData`] from the given HarfBuzz buffer.
///
/// # Safety
///
/// Passing an invalid buffer pointer to this function results in undefined behavior.
pub unsafe fn new(buffer: *mut hb_buffer_t) -> ShapedGlyphData {
let mut glyph_count = 0;
let glyph_infos = hb_buffer_get_glyph_infos(buffer, &mut glyph_count);

View file

@ -546,6 +546,11 @@ macro_rules! define_resource_id {
impl $name {
#[allow(unsafe_code)]
#[inline]
/// Create a new $name.
///
/// # Safety
///
/// Using an invalid OpenGL id may result in undefined behavior.
pub unsafe fn new(id: $type) -> Self {
$name(<nonzero_type!($type)>::new_unchecked(id))
}