diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2013-10-03 13:50:15 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2013-10-03 13:50:18 +0200 |
commit | 02c4d61263230e3dbd7900822677c720045b80cf (patch) | |
tree | aa45369685e47a3fa05063ca0dc0cae2c48331e4 | |
parent | 5032c04f3abae81c5d1b9e8867b9fbe08ec39f5f (diff) |
display: fix palette regression
palette_get() used to return a ref, and palette_release() used to
release that ref.
Since ed877341, the palette is no longer refcount'ed, since its usage is
exclusively local in common/canvas code.
palette_release() shouldn't remove the palette from the cache.
https://bugzilla.redhat.com/show_bug.cgi?id=1011936
-rw-r--r-- | gtk/channel-display.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gtk/channel-display.c b/gtk/channel-display.c index 794f4eb..e0f17eb 100644 --- a/gtk/channel-display.c +++ b/gtk/channel-display.c @@ -546,8 +546,8 @@ static SpicePalette *palette_get(SpicePaletteCache *cache, uint64_t id) SPICE_CONTAINEROF(cache, SpiceDisplayChannelPrivate, palette_cache); /* here the returned pointer is weak, no ref given to caller. it - * seems spice canvas usage is exclusively temporary, so it's ok - * (for now) */ + * seems spice canvas usage is exclusively temporary, so it's ok. + * palette_release is a noop. */ return cache_find(c->palettes, id); } @@ -561,7 +561,7 @@ static void palette_remove(SpicePaletteCache *cache, uint32_t id) static void palette_release(SpicePaletteCache *cache, SpicePalette *palette) { - palette_remove(cache, palette->unique); + /* there is no refcount of palette, see palette_get() */ } #ifdef SW_CANVAS_CACHE |