snapshot: Preallocate and don't memset the state stack

Most of the time the snapshot is less than 16 levels deep (did some testing
in gtk-demo), so lets pre-allocate 16 levels of state stack to avoid the
extra allocation most of the time.
This commit is contained in:
Alexander Larsson 2020-09-29 16:03:06 +02:00
parent 18b8b499de
commit 796e6ee306

View File

@ -132,6 +132,8 @@ static void gtk_snapshot_state_clear (GtkSnapshotState *state);
#define GDK_ARRAY_ELEMENT_TYPE GtkSnapshotState #define GDK_ARRAY_ELEMENT_TYPE GtkSnapshotState
#define GDK_ARRAY_FREE_FUNC gtk_snapshot_state_clear #define GDK_ARRAY_FREE_FUNC gtk_snapshot_state_clear
#define GDK_ARRAY_BY_VALUE 1 #define GDK_ARRAY_BY_VALUE 1
#define GDK_ARRAY_PREALLOC 16
#define GDK_ARRAY_NO_MEMSET 1
#include "gdk/gdkarrayimpl.c" #include "gdk/gdkarrayimpl.c"
/* This is a nasty little hack. We typedef GtkSnapshot to the fake object GdkSnapshot /* This is a nasty little hack. We typedef GtkSnapshot to the fake object GdkSnapshot