diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-09-07 22:13:08 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-09-07 22:15:01 -0700 |
commit | 75d22dc9e2bb1b25b19bac25121bcb31344f5945 (patch) | |
tree | 875f3586559c2e721ff71ef1b8ef599c17df40e7 | |
parent | f959a515a2e099bcda21425c4727b0bc904f7408 (diff) | |
download | gnulib-75d22dc9e2bb1b25b19bac25121bcb31344f5945.tar.gz |
scratch_buffer: sync from glibc
* config/srclist.txt: Add the scratch_buffer source
code from glibc, since these should be in sync.
Autoupdate.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | config/srclist.txt | 4 | ||||
-rw-r--r-- | lib/malloc/scratch_buffer.h | 6 | ||||
-rw-r--r-- | lib/malloc/scratch_buffer_grow_preserve.c | 4 | ||||
-rw-r--r-- | lib/timegm.c | 2 |
5 files changed, 17 insertions, 6 deletions
@@ -1,3 +1,10 @@ +2019-09-07 Paul Eggert <eggert@cs.ucla.edu> + + scratch_buffer: sync from glibc + * config/srclist.txt: Add the scratch_buffer source + code from glibc, since these should be in sync. + Autoupdate. + 2019-09-07 Bruno Haible <bruno@clisp.org> doc: Update for glibc 2.30. diff --git a/config/srclist.txt b/config/srclist.txt index 6d37729cef..4a3a5a7af0 100644 --- a/config/srclist.txt +++ b/config/srclist.txt @@ -46,6 +46,10 @@ $GNUORG Copyright/request-assign.future doc/Copyright $GNUORG Copyright/request-assign.program doc/Copyright $GNUORG Copyright/request-disclaim.changes doc/Copyright +$LIBCSRC include/scratch_buffer.h lib/malloc +$LIBCSRC malloc/scratch_buffer_grow.c lib/malloc +$LIBCSRC malloc/scratch_buffer_grow_preserve.c lib/malloc +$LIBCSRC malloc/scratch_buffer_set_array_size.c lib/malloc # Temporarily newer in Gnulib than in glibc. #$LIBCSRC include/intprops.h lib $LIBCSRC posix/regcomp.c lib diff --git a/lib/malloc/scratch_buffer.h b/lib/malloc/scratch_buffer.h index f83e1004b2..0482773acc 100644 --- a/lib/malloc/scratch_buffer.h +++ b/lib/malloc/scratch_buffer.h @@ -66,7 +66,7 @@ struct scratch_buffer { void *data; /* Pointer to the beginning of the scratch area. */ size_t length; /* Allocated space at the data pointer, in bytes. */ - max_align_t __space[(1023 + sizeof (max_align_t)) / sizeof (max_align_t)]; + union { max_align_t __align; char __c[1024]; } __space; }; /* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space @@ -74,7 +74,7 @@ struct scratch_buffer { static inline void scratch_buffer_init (struct scratch_buffer *buffer) { - buffer->data = buffer->__space; + buffer->data = buffer->__space.__c; buffer->length = sizeof (buffer->__space); } @@ -82,7 +82,7 @@ scratch_buffer_init (struct scratch_buffer *buffer) static inline void scratch_buffer_free (struct scratch_buffer *buffer) { - if (buffer->data != buffer->__space) + if (buffer->data != buffer->__space.__c) free (buffer->data); } diff --git a/lib/malloc/scratch_buffer_grow_preserve.c b/lib/malloc/scratch_buffer_grow_preserve.c index c3c6de18fc..62fcc656b6 100644 --- a/lib/malloc/scratch_buffer_grow_preserve.c +++ b/lib/malloc/scratch_buffer_grow_preserve.c @@ -30,14 +30,14 @@ __libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer) size_t new_length = 2 * buffer->length; void *new_ptr; - if (buffer->data == buffer->__space) + if (buffer->data == buffer->__space.__c) { /* Move buffer to the heap. No overflow is possible because buffer->length describes a small buffer on the stack. */ new_ptr = malloc (new_length); if (new_ptr == NULL) return false; - memcpy (new_ptr, buffer->__space, buffer->length); + memcpy (new_ptr, buffer->__space.__c, buffer->length); } else { diff --git a/lib/timegm.c b/lib/timegm.c index bae0ceee5e..00854c796a 100644 --- a/lib/timegm.c +++ b/lib/timegm.c @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ + <https://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <libc-config.h> |