From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=46861 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q24RL-0004FS-62 for qemu-devel@nongnu.org; Tue, 22 Mar 2011 12:28:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q24RG-0002xj-Ue for qemu-devel@nongnu.org; Tue, 22 Mar 2011 12:28:14 -0400 Received: from e2.ny.us.ibm.com ([32.97.182.142]:43439) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q24RG-0002xd-SH for qemu-devel@nongnu.org; Tue, 22 Mar 2011 12:28:10 -0400 Received: from d01dlp01.pok.ibm.com (d01dlp01.pok.ibm.com [9.56.224.56]) by e2.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p2MG9R0g027655 for ; Tue, 22 Mar 2011 12:09:27 -0400 Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by d01dlp01.pok.ibm.com (Postfix) with ESMTP id 40DCE38C8038 for ; Tue, 22 Mar 2011 12:28:04 -0400 (EDT) Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p2MGS9q1210896 for ; Tue, 22 Mar 2011 12:28:09 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p2MGS7tV000974 for ; Tue, 22 Mar 2011 12:28:09 -0400 Message-ID: <4D88CE10.8030805@us.ibm.com> Date: Tue, 22 Mar 2011 11:28:00 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <4D79E708.9050007@cn.fujitsu.com> In-Reply-To: <4D79E708.9050007@cn.fujitsu.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH RESEND v3] fix vnc regression List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wen Congyang Cc: qemu-devel , Corentin Chary On 03/11/2011 03:10 AM, Wen Congyang wrote: > This patch fix the following regression: > 1. we should use bitmap_set() and bitmap_clear() to replace vnc_set_bits(). > > Signed-off-by: Wen Congyang Applied (version that used VNC_DIRTY_BITS). Thanks. Regards, Anthony Liguori > --- > ui/vnc.c | 8 ++++++-- > 1 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/ui/vnc.c b/ui/vnc.c > index 34dc0cd..8fd35c1 100644 > --- a/ui/vnc.c > +++ b/ui/vnc.c > @@ -1645,17 +1645,21 @@ static void framebuffer_update_request(VncState *vs, int incremental, > int x_position, int y_position, > int w, int h) > { > + int i; > + const size_t width = ds_get_width(vs->ds) / 16; > + > if (y_position> ds_get_height(vs->ds)) > y_position = ds_get_height(vs->ds); > if (y_position + h>= ds_get_height(vs->ds)) > h = ds_get_height(vs->ds) - y_position; > > - int i; > vs->need_update = 1; > 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, width); > + bitmap_clear(vs->dirty[y_position + i], width, > + VNC_DIRTY_WORDS * BITS_PER_LONG - width); > } > } > }