summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--otk/rendercolor.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/otk/rendercolor.cc b/otk/rendercolor.cc
index b5e037d3..eb3ffdbc 100644
--- a/otk/rendercolor.cc
+++ b/otk/rendercolor.cc
@@ -47,6 +47,8 @@ void RenderColor::create()
{
unsigned long color = _blue | _green << 8 | _red << 16;
+ printf("CREATE COLOR: %lx\n", color);
+
// try get a gc from the cache
CacheItem *item = _cache[_screen][color];
@@ -79,17 +81,21 @@ void RenderColor::create()
assert(_gc);
// insert into the cache
- _cache[_screen][color] = new CacheItem(_gc);
+ item = new CacheItem(_gc);
+ _cache[_screen][color] = item;
+ ++item->count;
}
}
RenderColor::~RenderColor()
{
unsigned long color = _blue | _green << 8 | _red << 16;
-
+
CacheItem *item = _cache[_screen][color];
assert(item); // it better be in the cache ...
+ printf("DESTROY COLOR: %lx %d\n", color, item->count);
+
if (--item->count <= 0) {
// remove from the cache
XFreeGC(**display, _gc);