#ifndef MLDEBUG_H
#define MLDEBUG_H

#define MEMORY_PROFILING

#ifdef MEMORY_PROFILING

#include <QHash>

extern QHash<void *, QString> privateAllocations;

#define LogAlloc() addAlloc(this, QString(__FUNCTION__) + QString(" - 0x") + QString::number((qint64)this, 16));
#define LogDelete() removeAlloc(this);

void dump();
void addAlloc(void *ptr, const QString &data);
void removeAlloc(void *ptr);

#else

#define PrivateAlloc(name)
#define PrivateDelete(name)

#endif

#endif // MLDEBUG_H
