46 lines
1.6 KiB
Diff
46 lines
1.6 KiB
Diff
From 4954d18ff54e5e59a3bbd6b90ebc5d9acbb5e571 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
|
Date: Thu, 3 Oct 2013 13:50:15 +0200
|
|
Subject: [PATCH 2/3] 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
|
|
---
|
|
gtk/channel-display.c | 6 +++---
|
|
1 file 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
|
|
--
|
|
1.8.3.1
|
|
|