increment the count 1 right off the start for the cache
This commit is contained in:
parent
77882b46db
commit
3fe7bded58
1 changed files with 8 additions and 2 deletions
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue