From 6bda09f03c8d45e205227afdb064d61aa9a918ee Mon Sep 17 00:00:00 2001 From: dscho Date: Tue, 15 Jun 2004 12:23:57 +0000 Subject: fix CoRRE with maxRectsPerUpdate bug --- libvncserver/rfbserver.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c index 4fe2605..aa6befc 100644 --- a/libvncserver/rfbserver.c +++ b/libvncserver/rfbserver.c @@ -1221,8 +1221,9 @@ rfbSendFramebufferUpdate(cl, givenUpdateRegion) int y = rect.y1; int w = rect.x2 - x; int h = rect.y2 - y; - nUpdateRegionRects += (((w-1) / cl->correMaxWidth + 1) - * ((h-1) / cl->correMaxHeight + 1)); + int rectsPerRow = (w-1)/cl->correMaxWidth+1; + int rows = (h-1)/cl->correMaxHeight+1; + nUpdateRegionRects += rectsPerRow*rows; } sraRgnReleaseIterator(i); #ifdef LIBVNCSERVER_HAVE_LIBZ @@ -1266,6 +1267,7 @@ rfbSendFramebufferUpdate(cl, givenUpdateRegion) #ifdef LIBVNCSERVER_HAVE_LIBJPEG /* Tight encoding counts the rectangles differently */ && cl->preferredEncoding != rfbEncodingTight + && cl->preferredEncoding != rfbEncodingCoRRE #endif && nUpdateRegionRects>cl->screen->maxRectsPerUpdate) { sraRegion* newUpdateRegion = sraRgnBBox(updateRegion); -- cgit v1.2.1