Newer
Older
Import / projects / Gameloft / glwebtools / source / glwebtools / glwebtools_memory.cpp
@John John on 29 Dec 2020 878 bytes bulk import from macbookpro checkouts
#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