00001
00019
00020
00021
00022 #include "emalloc.h"
00023 #include "danerror.h"
00024 #include <stdlib.h>
00025
00026
00027
00028
00029
00045 void *Emalloc(size_t Size) {
00046 void *Buffer;
00047
00048 if (Size <= 0)
00049 DoError (ILLEGALMALLOCREQUEST, "Illegal malloc request size");
00050 Buffer = (void *) malloc (Size);
00051 if (Buffer == NULL) {
00052 DoError (NOTENOUGHMEMORY, "Not enough memory");
00053 return (NULL);
00054 }
00055 else
00056 return (Buffer);
00057
00058 }
00059
00060
00061
00069 void *Erealloc(void *ptr, size_t size) {
00070 void *Buffer;
00071
00072 if (size < 0 || (size == 0 && ptr == NULL))
00073 DoError (ILLEGALMALLOCREQUEST, "Illegal realloc request size");
00074
00075 Buffer = (void *) realloc (ptr, size);
00076 if (Buffer == NULL && size != 0)
00077 DoError (NOTENOUGHMEMORY, "Not enough memory");
00078 return (Buffer);
00079
00080 }
00081
00082
00083
00090 void Efree(void *ptr) {
00091 if (ptr == NULL)
00092 DoError (ILLEGALMALLOCREQUEST, "Attempted to free NULL ptr");
00093
00094 free(ptr);
00095
00096 }