summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2013-10-03 13:50:15 +0200
committerMarc-André Lureau <marcandre.lureau@redhat.com>2013-10-03 13:50:18 +0200
commit02c4d61263230e3dbd7900822677c720045b80cf (patch)
treeaa45369685e47a3fa05063ca0dc0cae2c48331e4
parent5032c04f3abae81c5d1b9e8867b9fbe08ec39f5f (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.c6
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