]> source.dussan.org Git - tigervnc.git/commitdiff
Corrected RandR wrapper return codes
authorPeter Åstrand (astrand) <astrand@cendio.se>
Wed, 7 Mar 2018 11:32:30 +0000 (12:32 +0100)
committerPeter Åstrand (astrand) <astrand@cendio.se>
Mon, 9 Apr 2018 08:26:25 +0000 (10:26 +0200)
In RandR land, there's a lot of return code confusion. Our wrappers
are using the same return codes as RRCrtcSet, RRScreenSizeSet: 1/TRUE
for success. Fixes:

* vncRandRCreateOutputs did not follow this convention

* A lot of code returned -1 upon failure

* vncRandRDisableOutput returned 0 for already disabled outputs

unix/common/randr.cxx
unix/xserver/hw/vnc/RandrGlue.c
unix/xserver/hw/vnc/vncModule.c
unix/xserver/hw/vnc/xvnc.c

index 44e46de7d524c343547842572f5a6a6595e9e95c..08bd45e6e71eb1992ed8d934a372253fa68cf9df 100644 (file)
@@ -113,7 +113,7 @@ unsigned int setScreenLayout(int screenIndex,
                layout.num_screens() - availableOutputs);
     ret = vncRandRCreateOutputs(screenIndex,
                                 layout.num_screens() - availableOutputs);
-    if (ret < 0) {
+    if (!ret) {
       vlog.error("Unable to create more screens, as needed by the new client layout.");
       return rfb::resultInvalid;
     }
index 9f770fa949e9c414b533d900163ab55ca63947b6..8106571063ca5137ac008ef0ac12b5455f563b47 100644 (file)
@@ -50,7 +50,7 @@ int vncRandRResizeScreen(int scrIdx, int width, int height)
                          pScreen->mmWidth * width / pScreen->width,
                          pScreen->mmHeight * height / pScreen->height);
 #else
-  return -1;
+  return 0;
 #endif
 }
 
@@ -199,11 +199,11 @@ int vncRandRDisableOutput(int scrIdx, int outputIdx)
 
   crtc = rp->outputs[outputIdx]->crtc;
   if (crtc == NULL)
-    return 0;
+    return 1;
 
   return RRCrtcSet(crtc, NULL, crtc->x, crtc->y, crtc->rotation, 0, NULL);
 #else
-  return -1;
+  return 0;
 #endif
 }
 
@@ -267,17 +267,17 @@ int vncRandRReconfigureOutput(int scrIdx, int outputIdx, int x, int y,
 
     /* Couldn't find one... */
     if (crtc == NULL)
-      return -1;
+      return 0;
   }
 
   /* Make sure we have the mode we want */
   mode = vncRandRCreatePreferredMode(output, width, height);
   if (mode == NULL)
-    return -1;
+    return 0;
 
   /* Reconfigure new mode and position */
   return RRCrtcSet(crtc, mode, x, y, crtc->rotation, 1, &output);
 #else
-  return -1;
+  return 0;
 #endif
 }
index 3fb0776910104ffa9254d3938fd79413fe82fa27..704e56eea81ff564c25d624c23f62476eb574736 100644 (file)
@@ -115,7 +115,7 @@ void vncClientGone(int fd)
 #ifdef RANDR
 int vncRandRCreateOutputs(int scrIdx, int extraOutputs)
 {
-  return -1;
+  return 0;
 }
 
 void *vncRandRCreatePreferredMode(void *out, int width, int height)
index 56a6ca58f103379cc4da0f5851ef8327b2016fde..4133689ba3d1fbd8376f564ffa1da0ff2f1b5cf9 100644 (file)
@@ -1387,11 +1387,11 @@ int vncRandRCreateOutputs(int scrIdx, int extraOutputs)
     while (extraOutputs > 0) {
         crtc = vncRandRCrtcCreate(screenInfo.screens[scrIdx]);
         if (crtc == NULL)
-            return -1;
+            return 0;
         extraOutputs--;
     }
 
-    return 0;
+    return 1;
 }
 
 /* Used to create a preferred mode from various places */