com32/lib: add zalloc()
authorH. Peter Anvin <hpa@zytor.com>
Fri, 1 Aug 2008 21:03:21 +0000 (14:03 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Fri, 1 Aug 2008 21:03:21 +0000 (14:03 -0700)
Add the nonstandard, but often useful, zalloc() function.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
com32/include/stdlib.h
com32/lib/Makefile
com32/lib/calloc.c
com32/lib/zalloc.c [new file with mode: 0644]

index be4e76e..e0fe7e3 100644 (file)
@@ -37,6 +37,7 @@ static __inline__ long long llabs(long long __n) {
 }
 
 __extern __mallocfunc void *malloc(size_t);
+__extern __mallocfunc void *zalloc(size_t);
 __extern __mallocfunc void *calloc(size_t, size_t);
 __extern __mallocfunc void *realloc(void *, size_t);
 __extern long strtol(const char *, char **, int);
index 74f3d7e..c2b4e3d 100644 (file)
@@ -19,7 +19,7 @@ LIBOBJS = \
        strtoimax.o strtok.o strtol.o strtoll.o strtoul.o strtoull.o    \
        strtoumax.o vfprintf.o vprintf.o vsnprintf.o vsprintf.o         \
        asprintf.o vasprintf.o strlcpy.o strlcat.o                      \
-       vsscanf.o                                                       \
+       vsscanf.o zalloc.o                                              \
        \
        libgcc/__ashldi3.o libgcc/__udivdi3.o                   \
        libgcc/__negdi2.o libgcc/__ashrdi3.o libgcc/__lshrdi3.o         \
index ebab49b..97659b1 100644 (file)
@@ -9,12 +9,5 @@
 
 void *calloc(size_t nmemb, size_t size)
 {
-  void *ptr;
-
-  size *= nmemb;
-  ptr = malloc(size);
-  if ( ptr )
-    memset(ptr, 0, size);
-
-  return ptr;
+  return zalloc(size*nmemb);
 }
diff --git a/com32/lib/zalloc.c b/com32/lib/zalloc.c
new file mode 100644 (file)
index 0000000..2a58a11
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * zalloc.c
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+void *zalloc(size_t size)
+{
+  void *ptr;
+
+  ptr = malloc(size);
+  if ( ptr )
+    memset(ptr, 0, size);
+
+  return ptr;
+}