qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2] fix vnc regression


From: Wen Congyang
Subject: [Qemu-devel] [PATCH v2] fix vnc regression
Date: Tue, 01 Mar 2011 09:48:28 +0800
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100413 Fedora/3.0.4-2.fc13 Thunderbird/3.0.4

This patch fix the following two regressions:
1. we should use bitmap_set() and bitmap_clear() to replace vnc_set_bits().
2. The unit of bitmap_intersects()'third parameter is bit, not words.
   But we pass the num of words to bitmap_intersects().

Changes from v1 to v2:
1. fix the third argument of bitmap_clear()

Signed-off-by: Wen Congyang <address@hidden>

---
 ui/vnc.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/ui/vnc.c b/ui/vnc.c
index 610f884..655aae6 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -1655,7 +1655,11 @@ static void framebuffer_update_request(VncState *vs, int 
incremental,
     if (!incremental) {
         vs->force_update = 1;
         for (i = 0; i < h; i++) {
-            bitmap_set(vs->dirty[y_position + i], x_position / 16, w / 16);
+            bitmap_set(vs->dirty[y_position + i], 0,
+                       (ds_get_width(vs->ds) / 16));
+            bitmap_clear(vs->dirty[y_position + i], (ds_get_width(vs->ds) / 
16),
+                         VNC_DIRTY_WORDS * BITS_PER_LONG -
+                         (ds_get_width(vs->ds) / 16));
         }
     }
 }
@@ -2406,7 +2410,8 @@ static int vnc_refresh_server_surface(VncDisplay *vd)
     guest_row  = vd->guest.ds->data;
     server_row = vd->server->data;
     for (y = 0; y < vd->guest.ds->height; y++) {
-        if (bitmap_intersects(vd->guest.dirty[y], width_mask, 
VNC_DIRTY_WORDS)) {
+        if (bitmap_intersects(vd->guest.dirty[y], width_mask,
+            VNC_DIRTY_WORDS * BITS_PER_LONG)) {
             int x;
             uint8_t *guest_ptr;
             uint8_t *server_ptr;
-- 
1.7.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]