#include <glwebtools/internal/glwebtools_memory.h>
namespace glwebtools
{
// callbacks for external libs
void* ExternalAlloc::Malloc(size_t size)
{
return GLWEBTOOLS_ALLOC(size);
}
void ExternalAlloc::Free(void *ptr)
{
GLWEBTOOLS_FREE(ptr);
}
void* ExternalAlloc::Realloc(void *ptr, size_t size)
{
return GLWEBTOOLS_REALLOC(ptr, size);
}
char* ExternalAlloc::Strdup(const char *str)
{
if (str == 0)
return 0;
const size_t size = strlen(str);
void* ptr = GLWEBTOOLS_ALLOC(size + 1);
if (ptr == 0)
return 0;
return (char*) memcpy(ptr, str, size + 1);
}
void* ExternalAlloc::Calloc(size_t nmemb, size_t size)
{
const size_t total_size = nmemb*size;
void* ptr = GLWEBTOOLS_ALLOC(total_size);
if (ptr == 0)
return 0;
return memset(ptr, 0, total_size);
}
} //namespace glwebtools