[gtk+] cssnode: Redo GTK_DEBUG=no-css-cache



commit c904efef5381a7b058ed17c077059707909e86d1
Author: Benjamin Otte <otte redhat com>
Date:   Sat Jan 16 04:55:58 2016 +0100

    cssnode: Redo GTK_DEBUG=no-css-cache
    
    Previously this setting would just invalidate the whole CSS tree and
    thereby hopefully avoid all cache usage.
    
    Now, we actually don't cause extra invalidations anymore, but instead
    avoid ever inserting anything into the cache when this setting is set.

 gtk/gtkcssnode.c           |   18 ------------------
 gtk/gtkcssnodestylecache.c |   13 +++++++++++++
 2 files changed, 13 insertions(+), 18 deletions(-)
---
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c
index 1106bdb..aac0bb3 100644
--- a/gtk/gtkcssnode.c
+++ b/gtk/gtkcssnode.c
@@ -22,7 +22,6 @@
 #include "gtkcssanimatedstyleprivate.h"
 #include "gtkcsssectionprivate.h"
 #include "gtkcssstylepropertyprivate.h"
-#include "gtkdebug.h"
 #include "gtkintl.h"
 #include "gtkmarshalers.h"
 #include "gtksettingsprivate.h"
@@ -1372,23 +1371,6 @@ gtk_css_node_validate_internal (GtkCssNode *cssnode,
 {
   GtkCssNode *child;
 
-  /* If you run your application with
-   *   GTK_DEBUG=no-css-cache
-   * every invalidation will purge the cache and completely query
-   * everything anew form the cache. This is slow (in particular
-   * when animating), but useful for figuring out bugs.
-   *
-   * We achieve that by pretending that everything that could have
-   * changed has and so we of course totally need to redo everything.
-   *
-   * Note that this also completely revalidates child widgets all
-   * the time.
-   */
-#ifdef G_ENABLE_DEBUG
-  if (GTK_DEBUG_CHECK (NO_CSS_CACHE))
-    cssnode->pending_changes |= GTK_CSS_CHANGE_ANY;
-#endif
-
   if (!cssnode->invalid)
     return;
 
diff --git a/gtk/gtkcssnodestylecache.c b/gtk/gtkcssnodestylecache.c
index 8c250bc..b07776d 100644
--- a/gtk/gtkcssnodestylecache.c
+++ b/gtk/gtkcssnodestylecache.c
@@ -19,6 +19,7 @@
 
 #include "gtkcssnodestylecacheprivate.h"
 
+#include "gtkdebug.h"
 #include "gtkcssstaticstyleprivate.h"
 
 struct _GtkCssNodeStyleCache {
@@ -78,6 +79,18 @@ may_be_stored_in_cache (GtkCssStyle *style)
 {
   GtkCssChange change;
 
+  /* If you run your application with
+   *   GTK_DEBUG=no-css-cache
+   * no caching will happen. This is slow (in particular
+   * when animating), but useful for figuring out bugs.
+   *
+   * We achieve that by disallowing any inserts into caches here.
+   */
+#ifdef G_ENABLE_DEBUG
+  if (GTK_DEBUG_CHECK (NO_CSS_CACHE))
+    return FALSE;
+#endif
+
   if (!GTK_IS_CSS_STATIC_STYLE (style))
     return FALSE;
 


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