bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] scratch_buffer: sync from glibc


From: Paul Eggert
Subject: [PATCH] scratch_buffer: sync from glibc
Date: Sat, 7 Sep 2019 22:15:13 -0700

* config/srclist.txt: Add the scratch_buffer source
code from glibc, since these should be in sync.
Autoupdate.
---
 ChangeLog                                 | 7 +++++++
 config/srclist.txt                        | 4 ++++
 lib/malloc/scratch_buffer.h               | 6 +++---
 lib/malloc/scratch_buffer_grow_preserve.c | 4 ++--
 lib/timegm.c                              | 2 +-
 5 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4e009db52..28a6b264b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-07  Paul Eggert  <address@hidden>
+
+       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  <address@hidden>
 
        doc: Update for glibc 2.30.
diff --git a/config/srclist.txt b/config/srclist.txt
index 6d37729ce..4a3a5a7af 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 f83e1004b..0482773ac 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 c3c6de18f..62fcc656b 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 bae0ceee5..00854c796 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>
-- 
2.21.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]