diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-01-22 23:14:42 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-01-22 23:14:42 +0000 |
| commit | 3fe7bded58fb82fd2c1c2a5f9ad2e8f453fa0609 (patch) | |
| tree | ced64a74d32db979a58d1045b3b78df3d416b192 /otk | |
| parent | 77882b46dbeb1f626f052e2eb3cb200d44f3e3ff (diff) | |
increment the count 1 right off the start for the cache
Diffstat (limited to 'otk')
| -rw-r--r-- | otk/rendercolor.cc | 10 |
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); |
