remove hand-written crt1.s and Scrt1.s files for all archs
[musl] / src / malloc / calloc.c
index 9d57456..436c0b0 100644 (file)
@@ -1,23 +1,13 @@
 #include <stdlib.h>
 #include <errno.h>
-#include <string.h>
+
+void *__malloc0(size_t);
 
 void *calloc(size_t m, size_t n)
 {
-       void *p;
-       size_t *z;
        if (n && m > (size_t)-1/n) {
                errno = ENOMEM;
                return 0;
        }
-       n *= m;
-       p = malloc(n);
-       if (!p) return 0;
-       /* Only do this for non-mmapped chunks */
-       if (((size_t *)p)[-1] & 7) {
-               /* Only write words that are not already zero */
-               m = (n + sizeof *z - 1)/sizeof *z;
-               for (z=p; m; m--, z++) if (*z) *z=0;
-       }
-       return p;
+       return __malloc0(n * m);
 }