[gtk: 2/4] gdkarray: Add support for GDK_ARRAY_NO_MEMSET




commit 18b8b499de22907ad1177953fb8ef734c721b586
Author: Alexander Larsson <alexl redhat com>
Date:   Tue Sep 29 16:00:30 2020 +0200

    gdkarray: Add support for GDK_ARRAY_NO_MEMSET
    
    If all your callers already initialize the array element as needed,
    then we don't need to memset it to zero first.
    
    This is pretty useful for the snapshot state stack, because due
    to the per-node-type data area the elements on the stack are
    quite large, but often a lot of it is not used.

 gdk/gdkarrayimpl.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
---
diff --git a/gdk/gdkarrayimpl.c b/gdk/gdkarrayimpl.c
index 65b74a3f59..003c67fd59 100644
--- a/gdk/gdkarrayimpl.c
+++ b/gdk/gdkarrayimpl.c
@@ -208,8 +208,10 @@ gdk_array(splice) (GdkArray *self,
         memcpy (gdk_array(index) (self, pos),
                 additions,
                 added * sizeof (_T_));
+#ifndef GDK_ARRAY_NO_MEMSET
       else
         memset (gdk_array(index) (self, pos), 0, added * sizeof (_T_));
+#endif
     }
 
 
@@ -279,5 +281,5 @@ gdk_array(get) (const GdkArray *self,
 #undef GDK_ARRAY_NULL_TERMINATED
 #undef GDK_ARRAY_PREALLOC
 #undef GDK_ARRAY_TYPE_NAME
-
+#undef GDK_ARRAY_NO_MEMSET
 #endif


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