amiga-libnix3/stdlib/realloc.c

25 lines
388 B
C

#include <stdlib.h>
#include <proto/exec.h>
#include <string.h>
void *realloc(void *ptr,size_t size)
{
void *a;
size_t l;
if(size)
a=malloc(size);
else
a=NULL;
if(ptr!=NULL)
{ if(a!=NULL)
{ l=((ULONG *)ptr)[-1]-sizeof(ULONG);
l=l<size?l:size;
// CopyMem(ptr,a,l);
bcopy(ptr,a,l);
}
if(size==0||a!=NULL)
free(ptr);
}
return a;
}