-/* $Header: malloc.c,v 3.0.1.4 90/11/13 15:23:45 lwall Locked $
+/* $RCSfile: malloc.c,v $$Revision: 4.0.1.2 $$Date: 91/06/07 11:20:45 $
*
* $Log: malloc.c,v $
- * Revision 3.0.1.4 90/11/13 15:23:45 lwall
- * patch41: added hp malloc union overhead strut (that sounds very blue collar)
+ * Revision 4.0.1.2 91/06/07 11:20:45 lwall
+ * patch4: many, many itty-bitty portability fixes
*
- * Revision 3.0.1.3 90/10/16 15:27:47 lwall
- * patch29: various portability fixes
+ * Revision 4.0.1.1 91/04/11 17:48:31 lwall
+ * patch1: Configure now figures out malloc ptr type
*
- * Revision 3.0.1.2 89/11/11 04:36:37 lwall
- * patch2: malloc pointer corruption check made more portable
- *
- * Revision 3.0.1.1 89/10/26 23:15:05 lwall
- * patch1: some declarations were missing from malloc.c
- * patch1: sparc machines had alignment problems in malloc.c
- *
- * Revision 3.0 89/10/18 15:20:39 lwall
- * 3.0 baseline
+ * Revision 4.0 91/03/20 01:28:52 lwall
+ * 4.0 baseline.
*
*/
*/
union overhead {
union overhead *ov_next; /* when free */
-#if defined(mips) || defined(sparc) || defined(luna88k) || defined(hp9000s800)
- double strut; /* alignment problems */
+#if ALIGNBYTES > 4
+ double strut; /* alignment problems */
#endif
struct {
u_char ovu_magic; /* magic number */
#define ASSERT(p)
#endif
-char *
+MALLOCPTRTYPE *
malloc(nbytes)
register unsigned nbytes;
{
p->ov_rmagic = RMAGIC;
*((u_int *)((caddr_t)p + nbytes - RSLOP)) = RMAGIC;
#endif
- return ((char *)(p + 1));
+ return ((MALLOCPTRTYPE *)(p + 1));
}
/*
}
}
-free(cp)
- char *cp;
+void
+free(mp)
+ MALLOCPTRTYPE *mp;
{
register int size;
register union overhead *op;
+ char *cp = (char*)mp;
if (cp == NULL)
return;
*/
int reall_srchlen = 4; /* 4 should be plenty, -1 =>'s whole list */
-char *
-realloc(cp, nbytes)
- char *cp;
+MALLOCPTRTYPE *
+realloc(mp, nbytes)
+ MALLOCPTRTYPE *mp;
unsigned nbytes;
{
register u_int onb;
char *res;
register int i;
int was_alloced = 0;
+ char *cp = (char*)mp;
if (cp == NULL)
return (malloc(nbytes));
*((u_int *)((caddr_t)op + nbytes - RSLOP)) = RMAGIC;
}
#endif
- return(cp);
+ return((MALLOCPTRTYPE*)cp);
}
- if ((res = malloc(nbytes)) == NULL)
+ if ((res = (char*)malloc(nbytes)) == NULL)
return (NULL);
if (cp != res) /* common optimization */
(void)bcopy(cp, res, (int)((nbytes < onb) ? nbytes : onb));
if (was_alloced)
free(cp);
- return (res);
+ return ((MALLOCPTRTYPE*)res);
}
/*