From 5c1feb0ef0b795e5de71e956f9ccddcd5c4b7f21 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 5 Nov 2016 18:00:10 +0100 Subject: [PATCH] libc: move calloc() into its own compilation unit move calloc() in its own compilation unit to avoid code duplication. also, calloc() is used rarely in plan9 programs. --- sys/src/9/port/alloc.c | 9 --------- sys/src/libc/port/calloc.c | 13 +++++++++++++ sys/src/libc/port/malloc.c | 12 ------------ sys/src/libc/port/mkfile | 1 + 4 files changed, 14 insertions(+), 21 deletions(-) create mode 100644 sys/src/libc/port/calloc.c diff --git a/sys/src/9/port/alloc.c b/sys/src/9/port/alloc.c index 963d60fd2..6c3519fdf 100644 --- a/sys/src/9/port/alloc.c +++ b/sys/src/9/port/alloc.c @@ -286,15 +286,6 @@ msize(void *v) return poolmsize(mainmem, (ulong*)v-Npadlong)-Npadlong*sizeof(ulong); } -void* -calloc(ulong n, ulong szelem) -{ - void *v; - if(v = mallocz(n*szelem, 1)) - setmalloctag(v, getcallerpc(&n)); - return v; -} - /* secret memory, used to back cryptographic keys and cipher states */ void* secalloc(ulong size) diff --git a/sys/src/libc/port/calloc.c b/sys/src/libc/port/calloc.c new file mode 100644 index 000000000..b8319128f --- /dev/null +++ b/sys/src/libc/port/calloc.c @@ -0,0 +1,13 @@ +#include +#include + +void* +calloc(ulong n, ulong s) +{ + void *v; + if(n > 1 && ((ulong)-1)/n < s) + return nil; + if(v = mallocz(n*s, 1)) + setmalloctag(v, getcallerpc(&n)); + return v; +} diff --git a/sys/src/libc/port/malloc.c b/sys/src/libc/port/malloc.c index a96ff8f78..907bfa8a6 100644 --- a/sys/src/libc/port/malloc.c +++ b/sys/src/libc/port/malloc.c @@ -279,18 +279,6 @@ msize(void *v) return poolmsize(mainmem, (ulong*)v-Npadlong)-Npadlong*sizeof(ulong); } -void* -calloc(ulong n, ulong s) -{ - void *v; - - if(n > 1 && ((ulong)-1)/n < s) - return nil; - if(v = mallocz(n*s, 1)) - setmalloctag(v, getcallerpc(&n)); - return v; -} - void setmalloctag(void *v, uintptr pc) { diff --git a/sys/src/libc/port/mkfile b/sys/src/libc/port/mkfile index dc2d93694..f3d32aaca 100644 --- a/sys/src/libc/port/mkfile +++ b/sys/src/libc/port/mkfile @@ -12,6 +12,7 @@ CFILES=\ atof.c\ atol.c\ atoll.c\ + calloc.c\ cistrcmp.c\ cistrncmp.c\ cistrstr.c\