X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=render%2Finstance.c;h=f4a2441eefe2604a79ca0c744748ba2236ff0818;hb=7043ce904bd0699df4c2d2c94333d911a06b7445;hp=4ce1c3df1a8746146e4f7a1ff243608f3bc69c3b;hpb=16f46c296d1fcd3f27fc62a18e71c55fb3fd3e88;p=chaz%2Fopenbox diff --git a/render/instance.c b/render/instance.c index 4ce1c3df..f4a2441e 100644 --- a/render/instance.c +++ b/render/instance.c @@ -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: