// Errors are 4.x
#include "global.h"
#if defined(PC) || defined(RASPBERRY)
#else
#if defined(ARDUINO) && ARDUINO >= 100
#else
#define TRACEMEMORY 1
// need to provide my own new
void * operator new(size_t size)
{
#ifdef TRACEMEMORY
_platform->WriteMessage("About to allocate %d bytes.", size);
#endif
// allocate the memory
void* p = malloc(size);
// if it did not work
if (p == NULL)
{
// report an error
_platform->Error(4);
}
// initialise the memory
memset(p, 0, size);
#ifdef TRACEMEMORY
_platform->WriteMessage("Allocating %d bytes at address %xd.", size, p);
#endif
// return the memory
return p;
}
// need to provide my own delete
void operator delete(void * ptr)
{
// release the memory
if (ptr != NULL)
{
free(ptr);
#ifdef TRACEMEMORY
_platform->WriteMessage("Releasing memory at address %xd.", ptr);
#endif
}
}
#endif
#endif