increment the count 1 right off the start for the cache

This commit is contained in:
Dana Jansens 2003-01-22 23:14:42 +00:00
parent 77882b46db
commit 3fe7bded58

View file

@ -47,6 +47,8 @@ void RenderColor::create()
{ {
unsigned long color = _blue | _green << 8 | _red << 16; unsigned long color = _blue | _green << 8 | _red << 16;
printf("CREATE COLOR: %lx\n", color);
// try get a gc from the cache // try get a gc from the cache
CacheItem *item = _cache[_screen][color]; CacheItem *item = _cache[_screen][color];
@ -79,17 +81,21 @@ void RenderColor::create()
assert(_gc); assert(_gc);
// insert into the cache // insert into the cache
_cache[_screen][color] = new CacheItem(_gc); item = new CacheItem(_gc);
_cache[_screen][color] = item;
++item->count;
} }
} }
RenderColor::~RenderColor() RenderColor::~RenderColor()
{ {
unsigned long color = _blue | _green << 8 | _red << 16; unsigned long color = _blue | _green << 8 | _red << 16;
CacheItem *item = _cache[_screen][color]; CacheItem *item = _cache[_screen][color];
assert(item); // it better be in the cache ... assert(item); // it better be in the cache ...
printf("DESTROY COLOR: %lx %d\n", color, item->count);
if (--item->count <= 0) { if (--item->count <= 0) {
// remove from the cache // remove from the cache
XFreeGC(**display, _gc); XFreeGC(**display, _gc);