[uClibc-cvs] uClibc/libc/stdlib/malloc calloc.c, 1.3, 1.4 Makefile, 1.30, 1.31
Erik Andersen
andersen at uclibc.org
Tue Dec 30 10:40:50 UTC 2003
- Previous message: [uClibc-cvs] uClibc/libc/stdlib Makefile, 1.54, 1.55 calloc.c, 1.1, NONE
- Next message: [uClibc-cvs] uClibc/libc/stdlib/malloc-930716 Makefile, 1.11, NONE README, 1.1, NONE malloc.c, 1.14, NONE malloc.h, 1.3, NONE memalign.c, 1.4, NONE realloc.c, 1.5, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /var/cvs/uClibc/libc/stdlib/malloc
In directory nail:/tmp/cvs-serv5823/libc/stdlib/malloc
Modified Files:
Makefile
Added Files:
calloc.c
Log Message:
Rework malloc. The new default implementation is based on dlmalloc from Doug
Lea. It is about 2x faster than the old malloc-930716, and behave itself much
better -- it will properly release memory back to the system, and it uses a
combination of brk() for small allocations and mmap() for larger allocations.
-Erik
Index: Makefile
===================================================================
RCS file: /var/cvs/uClibc/libc/stdlib/malloc/Makefile,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- Makefile 18 Oct 2003 10:19:25 -0000 1.30
+++ Makefile 30 Dec 2003 10:40:48 -0000 1.31
@@ -24,8 +24,7 @@
TOPDIR=../../../
include $(TOPDIR)Rules.mak
-# calloc.c can be found at uClibc/libc/stdlib/calloc.c
-CSRC = malloc.c free.c realloc.c memalign.c \
+CSRC = malloc.c calloc.c free.c realloc.c memalign.c \
heap_alloc.c heap_alloc_at.c heap_free.c
# Turn on malloc debugging if requested
--- NEW FILE: calloc.c ---
/* vi: set sw=4 ts=4: */
/* calloc for uClibc
*
* Copyright (C) 2002 by Erik Andersen <andersen at uclibc.org>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Library General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
* for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdlib.h>
#include <string.h>
#include <errno.h>
void * calloc(size_t nmemb, size_t lsize)
{
void *result;
size_t size=lsize * nmemb;
/* guard vs integer overflow, but allow nmemb
* to fall through and call malloc(0) */
if (nmemb && lsize != (size / nmemb)) {
__set_errno(ENOMEM);
return NULL;
}
if ((result=malloc(size)) != NULL) {
memset(result, 0, size);
}
return result;
}
- Previous message: [uClibc-cvs] uClibc/libc/stdlib Makefile, 1.54, 1.55 calloc.c, 1.1, NONE
- Next message: [uClibc-cvs] uClibc/libc/stdlib/malloc-930716 Makefile, 1.11, NONE README, 1.1, NONE malloc.c, 1.14, NONE malloc.h, 1.3, NONE memalign.c, 1.4, NONE realloc.c, 1.5, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the uClibc-cvs
mailing list