#include "vmhdr.h"
#if __STD_C
static Void_t* heapmem(Vmalloc_t* vm, Void_t* caddr,
size_t csize, size_t nsize,
Vmdisc_t* disc)
#else
static Void_t* heapmem(vm, caddr, csize, nsize, disc)
Vmalloc_t* vm;
Void_t* caddr;
size_t csize;
size_t nsize;
Vmdisc_t* disc;
#endif
{
NOTUSED(vm);
NOTUSED(disc);
if(csize == 0)
return vmalloc(Vmheap,nsize);
else if(nsize == 0)
return vmfree(Vmheap,caddr) >= 0 ? caddr : NIL(Void_t*);
else return vmresize(Vmheap,caddr,nsize,0);
}
static Vmdisc_t _Vmdcheap = { heapmem, NIL(Vmexcept_f), 0 };
__DEFINE__(Vmdisc_t*,Vmdcheap,&_Vmdcheap);