summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2010-12-15 14:43:45 +0200
committerHans de Goede <hdegoede@redhat.com>2010-12-16 16:24:04 +0100
commit367a5c8c3ae81dec30941586482c5168db6658e1 (patch)
tree33c25311476a767e9c7d8ac7b6dea9f73bd624f1
parent9ca2be9047d9f8efb31b238c68fc5426a22ee462 (diff)
downloadspice-367a5c8c3ae81dec30941586482c5168db6658e1.tar.gz
spice-367a5c8c3ae81dec30941586482c5168db6658e1.tar.xz
spice-367a5c8c3ae81dec30941586482c5168db6658e1.zip
server/red_worker: fix worker->drawable_count
drawable_count was becoming negative. It tracks the number of items in the worker->current_list ring. It was decremented correctly, but incremented only in several cases. The cases it wasn't incremented where: red_current_add_equal found an equivalent drawable by moving the increment to where the item is added to current_list, in __current_add_drawable, the accounting remains correct. This has no affect other then correct accounting, as drawable_count isn't used for anything.
-rw-r--r--server/red_worker.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index d59726f0..937e0aa2 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -2136,6 +2136,7 @@ static inline void __current_add_drawable(RedWorker *worker, Drawable *drawable,
surface = &worker->surfaces[surface_id];
ring_add_after(&drawable->tree_item.base.siblings_link, pos);
ring_add(&worker->current_list, &drawable->list_link);
+ worker->drawable_count++;
ring_add(&surface->current_list, &drawable->surface_list_link);
drawable->refs++;
}
@@ -3501,7 +3502,6 @@ static inline void red_process_drawable(RedWorker *worker, RedDrawable *drawable
if (red_current_add_qxl(worker, &worker->surfaces[surface_id].current, item,
drawable)) {
- worker->drawable_count++;
if (item->tree_item.effect != QXL_EFFECT_OPAQUE) {
worker->transparent_count++;
}