home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * REALLOC.C
- *
- * (c)Copyright 1990, Matthew Dillon, All Rights Reserved
- */
-
- #include <exec/types.h>
- #include <exec/memory.h>
- #include <stdlib.h>
- #include <errno.h>
-
- #define buf ((long *)vbuf)
-
- void *
- realloc(vbuf, bytes)
- void *vbuf;
- size_t bytes;
- {
- void *ptr = NULL;
- int copy;
-
- if (bytes <= 0 && buf) {
- free(buf);
- return(NULL);
- }
- if (buf) {
- copy = buf[-1] - 8;
- if (bytes <= copy)
- return(buf);
- }
- ptr = malloc(bytes);
- if (buf) {
- movmem(buf, ptr, copy);
- free(buf);
- }
- return(ptr);
- }
-
-