Mirai's Miscellaneous Misadventures

M28 / psx / malloc.c

1// copyright 2022 zamfofex
2// license: AGPLv3 or later
3
4#include <stdlib.h>
5#include <string.h>
6#include <stddef.h>
7
8#include <mimimi/allocators.h>
9#include <mimimi/malloc.h>
10
11static void *mimimi_malloc_allocate(unsigned int size)
12{
13	void *data = malloc(size);
14	if (data == NULL) for (;;) { }
15	return data;
16}
17
18static void *mimimi_malloc_reallocate(void *data0, unsigned int size)
19{
20	void *data = malloc(size);
21	if (data == NULL) for (;;) { }
22	memcpy(data, data0, size);
23	free(data0);
24	return data;
25}
26
27static struct mimimi_allocator mimimi_malloc_value = {&mimimi_malloc_allocate, &mimimi_malloc_reallocate, &free, NULL};
28
29struct mimimi_allocator *mimimi_malloc = &mimimi_malloc_value;