mirror of https://github.com/InoriRus/Kyty.git
Create SysMacOSHeap.h
This commit is contained in:
parent
0bfa251625
commit
e6aaeeab77
|
@ -0,0 +1,104 @@
|
|||
#ifndef SYS_MACOS_INCLUDE_KYTY_SYSHEAP_H_
|
||||
#define SYS_MACOS_INCLUDE_KYTY_SYSHEAP_H_
|
||||
|
||||
// IWYU pragma: private
|
||||
|
||||
#if KYTY_PLATFORM != KYTY_PLATFORM_MACOS
|
||||
//#error "KYTY_PLATFORM != KYTY_PLATFORM_MACOS"
|
||||
#else
|
||||
|
||||
#include "Kyty/Sys/MacOS/SysMacOSSync.h"
|
||||
|
||||
namespace Kyty {
|
||||
|
||||
using sys_heap_id_t = SysCS*;
|
||||
|
||||
inline sys_heap_id_t sys_heap_create()
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
inline sys_heap_id_t sys_heap_deafult()
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
inline void* sys_heap_alloc(sys_heap_id_t /*heap_id*/, size_t size)
|
||||
{
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-no-malloc,hicpp-no-malloc)
|
||||
void* m = malloc(size);
|
||||
|
||||
EXIT_IF(m == nullptr);
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
inline void* sys_heap_realloc(sys_heap_id_t /*heap_id*/, void* p, size_t size)
|
||||
{
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-no-malloc,hicpp-no-malloc)
|
||||
void* m = p != nullptr ? realloc(p, size) : malloc(size);
|
||||
|
||||
if (m == nullptr)
|
||||
{
|
||||
EXIT_IF(m == nullptr);
|
||||
}
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
inline void sys_heap_free(sys_heap_id_t /*heap_id*/, void* p)
|
||||
{
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-no-malloc,hicpp-no-malloc)
|
||||
free(p);
|
||||
}
|
||||
|
||||
inline sys_heap_id_t sys_heap_create_s()
|
||||
{
|
||||
auto* cs = new SysCS;
|
||||
cs->Init();
|
||||
return cs;
|
||||
}
|
||||
|
||||
inline void* sys_heap_alloc_s(sys_heap_id_t heap_id, size_t size)
|
||||
{
|
||||
heap_id->Enter();
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-no-malloc,hicpp-no-malloc)
|
||||
void* m = malloc(size);
|
||||
|
||||
heap_id->Leave();
|
||||
|
||||
EXIT_IF(m == nullptr);
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
inline void* sys_heap_realloc_s(sys_heap_id_t heap_id, void* p, size_t size)
|
||||
{
|
||||
heap_id->Enter();
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-no-malloc,hicpp-no-malloc)
|
||||
void* m = p != nullptr ? realloc(p, size) : malloc(size);
|
||||
|
||||
heap_id->Leave();
|
||||
|
||||
EXIT_IF(m == nullptr);
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
inline void sys_heap_free_s(sys_heap_id_t heap_id, void* p)
|
||||
{
|
||||
heap_id->Enter();
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-no-malloc,hicpp-no-malloc)
|
||||
free(p);
|
||||
|
||||
heap_id->Leave();
|
||||
}
|
||||
|
||||
} // namespace Kyty
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* SYS_MACOS_INCLUDE_KYTY_SYSHEAP_H_ */
|
Loading…
Reference in New Issue