diff options
author | Simon Josefsson <simon@josefsson.org> | 2010-09-21 15:00:28 +0200 |
---|---|---|
committer | Simon Josefsson <simon@josefsson.org> | 2010-09-21 15:00:28 +0200 |
commit | a52d2b3e2f135a563ed5a7299aef5d4a0397c50d (patch) | |
tree | 17051163de8e3f6c0c7ac8a6def83ef3677d1eec /gl/malloc.c | |
parent | 78819671f59cc4dea560b1ef3a21a04991e7822a (diff) | |
download | libtasn1-a52d2b3e2f135a563ed5a7299aef5d4a0397c50d.tar.gz libtasn1-a52d2b3e2f135a563ed5a7299aef5d4a0397c50d.tar.bz2 libtasn1-a52d2b3e2f135a563ed5a7299aef5d4a0397c50d.zip |
Update gnulib files.
Diffstat (limited to 'gl/malloc.c')
-rw-r--r-- | gl/malloc.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/gl/malloc.c b/gl/malloc.c new file mode 100644 index 0000000..4fa38ee --- /dev/null +++ b/gl/malloc.c @@ -0,0 +1,60 @@ +/* malloc() function that is glibc compatible. + + Copyright (C) 1997-1998, 2006-2007, 2009-2010 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* written by Jim Meyering and Bruno Haible */ + +#include <config.h> +/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ +#ifdef malloc +# define NEED_MALLOC_GNU 1 +# undef malloc +/* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ +#elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU +# define NEED_MALLOC_GNU 1 +#endif + +/* Specification. */ +#include <stdlib.h> + +#include <errno.h> + +/* Call the system's malloc below. */ +#undef malloc + +/* Allocate an N-byte block of memory from the heap. + If N is zero, allocate a 1-byte block. */ + +void * +rpl_malloc (size_t n) +{ + void *result; + +#if NEED_MALLOC_GNU + if (n == 0) + n = 1; +#endif + + result = malloc (n); + +#if !HAVE_MALLOC_POSIX + if (result == NULL) + errno = ENOMEM; +#endif + + return result; +} |