vnc: tight: split send_sub_rect

Split send_sub_rect in send_sub_rect_jpeg and send_sub_rect_nojpeg to
remove all these #ifdef CONFIG_JPEG.

Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index eaa88ce..86bb49a 100644
--- a/ui/vnc-enc-tight.c
+++ b/ui/vnc-enc-tight.c
@@ -1452,6 +1452,60 @@
     vs->output = vs->tight.tmp;
 }
 
+static int send_sub_rect_nojpeg(VncState *vs, int x, int y, int w, int h,
+                                int bg, int fg, int colors, VncPalette *palette)
+{
+    int ret;
+
+    if (colors == 0) {
+        if (tight_detect_smooth_image(vs, w, h)) {
+            ret = send_gradient_rect(vs, x, y, w, h);
+        } else {
+            ret = send_full_color_rect(vs, x, y, w, h);
+        }
+    } else if (colors == 1) {
+        ret = send_solid_rect(vs);
+    } else if (colors == 2) {
+        ret = send_mono_rect(vs, x, y, w, h, bg, fg);
+    } else if (colors <= 256) {
+        ret = send_palette_rect(vs, x, y, w, h, palette);
+    }
+    return ret;
+}
+
+#ifdef CONFIG_VNC_JPEG
+static int send_sub_rect_jpeg(VncState *vs, int x, int y, int w, int h,
+                              int bg, int fg, int colors,
+                              VncPalette *palette)
+{
+    int ret;
+
+    if (colors == 0) {
+        if (tight_detect_smooth_image(vs, w, h)) {
+            int quality = tight_conf[vs->tight.quality].jpeg_quality;
+
+            ret = send_jpeg_rect(vs, x, y, w, h, quality);
+        } else {
+            ret = send_full_color_rect(vs, x, y, w, h);
+        }
+    } else if (colors == 1) {
+        ret = send_solid_rect(vs);
+    } else if (colors == 2) {
+        ret = send_mono_rect(vs, x, y, w, h, bg, fg);
+    } else if (colors <= 256) {
+        if (colors > 96 &&
+            tight_detect_smooth_image(vs, w, h)) {
+            int quality = tight_conf[vs->tight.quality].jpeg_quality;
+
+            ret = send_jpeg_rect(vs, x, y, w, h, quality);
+        } else {
+            ret = send_palette_rect(vs, x, y, w, h, palette);
+        }
+    }
+    return ret;
+}
+#endif
+
 static int send_sub_rect(VncState *vs, int x, int y, int w, int h)
 {
     VncPalette *palette = NULL;
@@ -1467,40 +1521,16 @@
 
     colors = tight_fill_palette(vs, x, y, w * h, &fg, &bg, &palette);
 
-    if (colors == 0) {
-        if (tight_detect_smooth_image(vs, w, h)) {
-            if (vs->tight.quality == -1) {
-                ret = send_gradient_rect(vs, x, y, w, h);
-            } else {
 #ifdef CONFIG_VNC_JPEG
-                int quality = tight_conf[vs->tight.quality].jpeg_quality;
-
-                ret = send_jpeg_rect(vs, x, y, w, h, quality);
-#else
-                ret = send_full_color_rect(vs, x, y, w, h);
-#endif
-            }
-        } else {
-            ret = send_full_color_rect(vs, x, y, w, h);
-        }
-    } else if (colors == 1) {
-        ret = send_solid_rect(vs);
-    } else if (colors == 2) {
-        ret = send_mono_rect(vs, x, y, w, h, bg, fg);
-    } else if (colors <= 256) {
-#ifdef CONFIG_VNC_JPEG
-        if (colors > 96 && vs->tight.quality != -1 && vs->tight.quality <= 3 &&
-            tight_detect_smooth_image(vs, w, h)) {
-            int quality = tight_conf[vs->tight.quality].jpeg_quality;
-
-            ret = send_jpeg_rect(vs, x, y, w, h, quality);
-        } else {
-            ret = send_palette_rect(vs, x, y, w, h, palette);
-        }
-#else
-        ret = send_palette_rect(vs, x, y, w, h, palette);
-#endif
+    if (vs->tight.quality != -1) {
+        ret = send_sub_rect_jpeg(vs, x, y, w, h, bg, fg, colors, palette);
+    } else {
+        ret = send_sub_rect_nojpeg(vs, x, y, w, h, bg, fg, colors, palette);
     }
+#else
+    ret = send_sub_rect_nojpeg(vs, x, y, w, h, bg, fg, colors, palette);
+#endif
+
     palette_destroy(palette);
     return ret;
 }