]> Dogcows Code - chaz/openbox/blobdiff - render/instance.c
recent changes
[chaz/openbox] / render / instance.c
index 4ce1c3df1a8746146e4f7a1ff243608f3bc69c3b..f4a2441eefe2604a79ca0c744748ba2236ff0818 100644 (file)
@@ -24,6 +24,36 @@ static RrInstance *definst = NULL;
 static void RrTrueColorSetup (RrInstance *inst);
 static void RrPseudoColorSetup (RrInstance *inst);
 
+#ifdef DEBUG
+#include "color.h"
+#endif
+static void
+dest(gpointer data)
+{
+#ifdef DEBUG
+    RrColor *c = data;
+    if (c->refcount > 0)
+        g_error("color %d (%d,%d,%d) in hash table with %d "
+                "leftover references",
+                c->id, RrColorRed(c), RrColorGreen(c), RrColorBlue(c),
+                c->refcount);
+#endif
+}
+
+#if 0
+static void f(gpointer key, gpointer value, gpointer n)
+{
+    RrColor *c = value;
+    if (c->id == *(int*)n)
+        g_message("color %d has %d references", c->id, c->refcount);
+}
+
+void print_refs(int id)
+{
+    g_hash_table_foreach(RrColorHash(definst), f, &id);
+}
+#endif
+
 RrInstance* RrInstanceNew (Display *display, gint screen)
 {
     definst = g_new (RrInstance, 1);
@@ -36,7 +66,8 @@ RrInstance* RrInstanceNew (Display *display, gint screen)
 
     definst->pseudo_colors = NULL;
 
-    definst->color_hash = g_hash_table_new(g_int_hash, g_int_equal);
+    definst->color_hash = g_hash_table_new_full(g_int_hash, g_int_equal,
+                                                NULL, dest);
 
     switch (definst->visual->class) {
     case TrueColor:
This page took 0.021703 seconds and 4 git commands to generate.