1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

Update gnulib to 8f4538a53d64054ae2fc8b86c0f87c418c6176e6

Includes gnulib:0c907f7da13232908f05c415b8cec56024071906 to fix #49930
https://lists.gnu.org/archive/html/bug-guile/2021-08/msg00003.html.
This commit is contained in:
Daniel Llorens 2021-08-16 13:23:27 +02:00
parent 5df5555d12
commit b4a80f4239
304 changed files with 4264 additions and 3003 deletions

View file

@ -3,12 +3,12 @@
Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2021 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
This file 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 Lesser General Public License for more details.
@ -18,68 +18,46 @@
/* written by Jim Meyering and Bruno Haible */
#define _GL_USE_STDLIB_ALLOC 1
#include <config.h>
/* Only the AC_FUNC_REALLOC macro defines 'realloc' already in config.h. */
#ifdef realloc
# define NEED_REALLOC_GNU 1
/* Whereas the gnulib module 'realloc-gnu' defines HAVE_REALLOC_GNU. */
#elif GNULIB_REALLOC_GNU && !HAVE_REALLOC_GNU
# define NEED_REALLOC_GNU 1
#endif
/* Infer the properties of the system's malloc function.
The gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */
#if GNULIB_MALLOC_GNU && HAVE_MALLOC_GNU
# define SYSTEM_MALLOC_GLIBC_COMPATIBLE 1
#endif
#include <stdlib.h>
/* A function definition is only needed if NEED_REALLOC_GNU is defined above
or if the module 'realloc-posix' requests it. */
#if NEED_REALLOC_GNU || (GNULIB_REALLOC_POSIX && !HAVE_REALLOC_POSIX)
#include <errno.h>
# include <errno.h>
#include "xalloc-oversized.h"
/* Call the system's realloc below. This file does not define
_GL_USE_STDLIB_ALLOC because it needs Gnulib's malloc if present. */
#undef realloc
/* Change the size of an allocated block of memory P to N bytes,
with error checking. If N is zero, change it to 1. If P is NULL,
use malloc. */
with error checking. If P is NULL, use malloc. Otherwise if N is zero,
free P and return NULL. */
void *
rpl_realloc (void *p, size_t n)
{
void *result;
if (p == NULL)
return malloc (n);
# if NEED_REALLOC_GNU
if (n == 0)
{
n = 1;
/* In theory realloc might fail, so don't rely on it to free. */
free (p);
p = NULL;
return NULL;
}
# endif
if (p == NULL)
if (xalloc_oversized (n, 1))
{
# if GNULIB_REALLOC_GNU && !NEED_REALLOC_GNU && !SYSTEM_MALLOC_GLIBC_COMPATIBLE
if (n == 0)
n = 1;
# endif
result = malloc (n);
errno = ENOMEM;
return NULL;
}
else
result = realloc (p, n);
# if !HAVE_REALLOC_POSIX
void *result = realloc (p, n);
#if !HAVE_MALLOC_POSIX
if (result == NULL)
errno = ENOMEM;
# endif
#endif
return result;
}
#endif