tracy/public/common/TracyAlloc.hpp

73 lines
1.2 KiB
C++
Raw Normal View History

2017-10-14 14:52:05 +00:00
#ifndef __TRACYALLOC_HPP__
#define __TRACYALLOC_HPP__
2019-11-15 19:17:55 +00:00
#include <stdlib.h>
2017-10-14 14:52:05 +00:00
2022-08-08 17:30:00 +00:00
#if defined TRACY_ENABLE && !defined __EMSCRIPTEN__
# include "TracyApi.h"
# include "TracyForceInline.hpp"
# include "../client/tracy_rpmalloc.hpp"
# define TRACY_USE_RPMALLOC
#endif
2017-10-14 14:52:05 +00:00
namespace tracy
{
#ifdef TRACY_USE_RPMALLOC
TRACY_API void InitRpmalloc();
#else
static inline void InitRpmalloc() {}
#endif
2017-10-14 14:52:05 +00:00
static inline void* tracy_malloc( size_t size )
{
#ifdef TRACY_USE_RPMALLOC
InitRpmalloc();
2017-10-14 14:52:05 +00:00
return rpmalloc( size );
#else
return malloc( size );
#endif
2017-10-14 14:52:05 +00:00
}
static inline void* tracy_malloc_fast( size_t size )
{
#ifdef TRACY_USE_RPMALLOC
return rpmalloc( size );
#else
return malloc( size );
#endif
}
2017-10-14 14:52:05 +00:00
static inline void tracy_free( void* ptr )
{
#ifdef TRACY_USE_RPMALLOC
InitRpmalloc();
2017-10-14 14:52:05 +00:00
rpfree( ptr );
#else
free( ptr );
#endif
2017-10-14 14:52:05 +00:00
}
static inline void tracy_free_fast( void* ptr )
{
#ifdef TRACY_USE_RPMALLOC
rpfree( ptr );
#else
free( ptr );
#endif
}
2020-10-22 20:24:32 +00:00
static inline void* tracy_realloc( void* ptr, size_t size )
{
#ifdef TRACY_USE_RPMALLOC
InitRpmalloc();
2020-10-22 20:24:32 +00:00
return rprealloc( ptr, size );
#else
return realloc( ptr, size );
#endif
}
2017-10-14 14:52:05 +00:00
}
#endif