summaryrefslogtreecommitdiff
path: root/otk
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-22 23:14:42 +0000
committerDana Jansens <danakj@orodu.net>2003-01-22 23:14:42 +0000
commit3fe7bded58fb82fd2c1c2a5f9ad2e8f453fa0609 (patch)
treeced64a74d32db979a58d1045b3b78df3d416b192 /otk
parent77882b46dbeb1f626f052e2eb3cb200d44f3e3ff (diff)
increment the count 1 right off the start for the cache
Diffstat (limited to 'otk')
-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);