Raven Engine v0.1
A modern 3D Game Engine
Loading...
Searching...
No Matches
MemoryTracker.h File Reference
#include "Raven/Core/Logging.h"
#include "Raven/Core/Types.h"
#include <cstdlib>
#include <mutex>
#include <unordered_map>
#include <string>

Classes

struct  Raven::MemoryTracker::AllocationInfo
struct  TrackingAllocator< T >

Namespaces

namespace  Raven
namespace  Raven::MemoryTracker

Macros

#define rnew(type)
#define rdelete(ptr)
#define rdelete_array(ptr)

Functions

std::unordered_map< void *, AllocationInfo > & Raven::MemoryTracker::GetAllocations ()
std::mutex & Raven::MemoryTracker::GetMutex ()
void Raven::MemoryTracker::AddAllocation (void *ptr, usize size, const char *function, const char *typeName, bool isArray)
void Raven::MemoryTracker::RemoveAllocation (void *ptr)
void Raven::MemoryTracker::DumpLeaks ()
void * operator new (size_t size, const char *function, const char *typeName)
void * operator new[] (size_t size, const char *function, const char *typeName)
void operator delete (void *ptr, const char *, const char *) noexcept
void operator delete[] (void *ptr, const char *, const char *) noexcept

Macro Definition Documentation

◆ rdelete

#define rdelete ( ptr)
Value:
do \
{ \
if (ptr) \
{ \
Raven::MemoryTracker::RemoveAllocation(ptr); \
delete ptr; \
} \
} while (0)

◆ rdelete_array

#define rdelete_array ( ptr)
Value:
do \
{ \
if (ptr) \
{ \
Raven::MemoryTracker::RemoveAllocation(ptr); \
delete[] ptr; \
} \
} while (0)

◆ rnew

#define rnew ( type)
Value:
new (__FUNCTION__, typeid(type).name())

Function Documentation

◆ operator delete()

void operator delete ( void * ptr,
const char * ,
const char *  )
inlinenoexcept

◆ operator delete[]()

void operator delete[] ( void * ptr,
const char * ,
const char *  )
inlinenoexcept

◆ operator new()

void * operator new ( size_t size,
const char * function,
const char * typeName )
inline

◆ operator new[]()

void * operator new[] ( size_t size,
const char * function,
const char * typeName )
inline