[gtk+] bitmask: Optimize no-op resizes



commit c86f0b1b237bf8ccc47a5a5399a8acc55e0eb1fd
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Sep 10 18:48:29 2015 -0400

    bitmask: Optimize no-op resizes
    
    Statistics for the gtk3-demo listbox example show that the
    vast majority of calls to _gtk_allocated_bitmask_resize go
    from a size of 2 to 2. Don't needlessly call realloc() in
    this case.

 gtk/gtkallocatedbitmask.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkallocatedbitmask.c b/gtk/gtkallocatedbitmask.c
index 567b86c..0950d43 100644
--- a/gtk/gtkallocatedbitmask.c
+++ b/gtk/gtkallocatedbitmask.c
@@ -52,6 +52,9 @@ gtk_allocated_bitmask_resize (GtkBitmask *mask,
 {
   gsize i;
 
+  if (size == mask->len)
+    return mask;
+
   mask = g_realloc (mask, sizeof (GtkBitmask) + sizeof(VALUE_TYPE) * (size - 1));
 
   for (i = mask->len; i < size; i++)


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