commonlibsse_ng\re\n/
NiTCollection.rs

1use core::alloc::Layout;
2use core::ffi::c_void;
3use core::ptr::NonNull;
4
5use crate::re::NiAllocator::NiMemEventType;
6use crate::re::NiMemManager::NiMemManager;
7
8#[inline]
9pub fn NiMalloc(size_in_bytes: usize) -> Option<NonNull<u8>> {
10    NiMemManager::get_singleton_mut()?.allocate(
11        size_in_bytes,
12        0,
13        NiMemEventType::Malloc,
14        false,
15        None,
16        None,
17        None,
18    )
19}
20
21#[inline]
22pub fn NiAlignedMalloc(layout: Layout) -> Option<NonNull<u8>> {
23    let size_in_bytes = layout.size();
24    let alignment = layout.align();
25
26    NiMemManager::get_singleton_mut()?.allocate(
27        size_in_bytes,
28        alignment,
29        NiMemEventType::AlignedMalloc,
30        false,
31        None,
32        None,
33        None,
34    )
35}
36
37#[inline]
38pub fn NiFree(mem: *mut c_void) {
39    if let Some(mem_manager) = NiMemManager::get_singleton_mut() {
40        mem_manager.deallocate(mem, NiMemEventType::Free, None);
41    }
42}