#![no_std]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc = document_features::document_features!()]
#[cfg(feature = "extension")]
#[cfg_attr(docsrs, doc(cfg(feature = "extension")))]
mod extension;
#[cfg(feature = "extension")]
#[cfg_attr(docsrs, doc(cfg(feature = "extension")))]
pub use extension::*;
unsafe extern "C" {
pub fn BridgeTCMallocInternalNewAlignedNothrow(
size: libc::size_t,
alignment: libc::size_t,
) -> *mut core::ffi::c_void;
pub fn TCMallocInternalDeleteSizedAligned(
ptr: *mut core::ffi::c_void,
size: libc::size_t,
alignment: libc::size_t,
);
pub fn TCMallocInternalDeleteAligned(ptr: *mut core::ffi::c_void, alignment: libc::size_t);
pub fn BridgePrepareReallocAligned(
old_ptr: *mut core::ffi::c_void,
new_size: libc::size_t,
alignment: libc::size_t,
old_size: *mut libc::size_t,
) -> *mut core::ffi::c_void;
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_frees_memory_malloc() {
let ptr = unsafe { BridgeTCMallocInternalNewAlignedNothrow(8, 16) } as *mut u8;
unsafe { TCMallocInternalDeleteSizedAligned(ptr as *mut libc::c_void, 8, 16) };
}
}