Reader
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#include "memory.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
void *lisp_realloc(void *oldptr, size_t size) {
|
||||
if (!size) {
|
||||
assert(oldptr != NULL);
|
||||
return NULL;
|
||||
} else {
|
||||
void *newptr = realloc(oldptr, size);
|
||||
if (!newptr) {
|
||||
fputs("Allocation failed!", stderr);
|
||||
abort();
|
||||
}
|
||||
return newptr;
|
||||
}
|
||||
}
|
||||
|
||||
void *lisp_malloc(size_t size) {
|
||||
return lisp_realloc(NULL, size);
|
||||
}
|
||||
|
||||
void *lisp_malloc0(size_t size) {
|
||||
void *ptr = lisp_malloc(size);
|
||||
memset(ptr, 0, size);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void *lisp_aligned_alloc(size_t alignment, size_t size) {
|
||||
void *ptr = aligned_alloc(alignment, size);
|
||||
if (!ptr) {
|
||||
fputs("Allocation failed!", stderr);
|
||||
abort();
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
Reference in New Issue
Block a user