use bzero
authorSerge ??? <serge@ucbvax.Berkeley.EDU>
Tue, 22 Jan 1985 14:41:38 +0000 (06:41 -0800)
committerSerge ??? <serge@ucbvax.Berkeley.EDU>
Tue, 22 Jan 1985 14:41:38 +0000 (06:41 -0800)
SCCS-vsn: lib/libc/stdlib/calloc.c 4.2

usr/src/lib/libc/stdlib/calloc.c

index bd58a55..6aa20e9 100644 (file)
@@ -1,32 +1,25 @@
-/* @(#)calloc.c        4.1 (Berkeley) %G% */
-/*     calloc - allocate and clear memory block
-*/
-#define CHARPERINT (sizeof(int)/sizeof(char))
-#define NULL 0
+/* @(#)calloc.c        4.2 (Berkeley) %G% */
 
 
+/*
+ * Calloc - allocate and clear memory block
+ */
 char *
 calloc(num, size)
 char *
 calloc(num, size)
-unsigned num, size;
+       register unsigned num, size;
 {
 {
-       register char *mp;
-       char *malloc();
-       register int *q;
-       register m;
+       extern char *malloc();
+       register char *p;
 
 
-       num *= size;
-       mp = malloc(num);
-       if(mp == NULL)
-               return(NULL);
-       q = (int *) mp;
-       m = (num+CHARPERINT-1)/CHARPERINT;
-       while(--m>=0)
-               *q++ = 0;
-       return(mp);
+       size *= num;
+       if (p = malloc(size))
+               bzero(p, size);
+       return (p);
 }
 
 cfree(p, num, size)
 }
 
 cfree(p, num, size)
-char *p;
-unsigned num, size;
+       char *p;
+       unsigned num;
+       unsigned size;
 {
        free(p);
 }
 {
        free(p);
 }