Mirai's Miscellaneous Misadventures

M31 / core / malloc.c

// copyright 2022 zamfofex
// license: AGPLv3 or later

#include <stdlib.h>

#include <mimimi/allocators.h>
#include <mimimi/malloc.h>

static void *mimimi_malloc_allocate(void *data, unsigned int size)
{
	(void) data;
	void *value = malloc(size);
	if (value == NULL) exit(1);
	return value;
}

static void *mimimi_malloc_reallocate(void *data, void *value, unsigned int size)
{
	(void) data;
	value = realloc(value, size);
	if (value == NULL) exit(1);
	return value;
}

static void mimimi_malloc_deallocate(void *data, void *value)
{
	(void) data;
	free(value);
}

static struct mimimi_allocator mimimi_malloc_value = {&mimimi_malloc_allocate, &mimimi_malloc_reallocate, &mimimi_malloc_deallocate, NULL, NULL};

struct mimimi_allocator *mimimi_malloc = &mimimi_malloc_value;