#include <stdlib.h>
#include <stddef.h>
#include <stdalign.h>
#include <stdarg.h>
#include <string.h>
#include "yesalloc.h"
void* yesmalloc(size_t size, size_t align) {
void* ptr = aligned_alloc(align, size);
return ptr;
}
void* yescalloc(size_t size, size_t align) {
void* ptr = yesmalloc(size, align);
if (ptr != NULL) {
memset(ptr, 0x00, size);
}
return ptr;
}
void* yesremalloc(void* ptr, size_t size, size_t align, size_t new_size) {
void* nptr = yesmalloc(new_size, align);
if (ptr != NULL && nptr != NULL) {
memcpy(nptr, ptr, MIN(size, new_size));
yesfree(ptr, size, align);
};
return nptr;
}
void* yesrecalloc(void* ptr, size_t size, size_t align, size_t new_size) {
void* nptr = yesmalloc(new_size, align);
yesfree(ptr, size, align);
if (nptr != NULL) {
memset(nptr, 0x00, new_size);
}
return nptr;
}
void yesfree(void* ptr, size_t size, size_t align) {
if (ptr != NULL) {
free(ptr);
};
return;
}