xserver: Branch 'master' - 3 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 17 21:06:05 UTC 2025


 Xext/saver.c |   72 +++++++++++++++++++++++++++++++----------------------------
 1 file changed, 38 insertions(+), 34 deletions(-)

New commits:
commit 2a0f6ec92012c519f4d138f6809b89cff7ca2f5c
Merge: 3e168d8e6 5ad38ac58
Author: Marge Bot <marge-bot at fdo.invalid>
Date:   Tue Jun 17 21:06:02 2025 +0000

    Merge branch 'revert-1591' into 'master'
    
    Revert parts of !1591 ("Xext: saver: misc cleanups & tiny bugfix (#1704)")
    
    See merge request xorg/xserver!2023

commit 5ad38ac585b6ce0a101928b5602ef90750be2cb6
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date:   Sun Jun 15 12:46:52 2025 -0700

    Revert "Xext: saver: skip unneeded zero init and zero-swapping"
    
    This reverts commit 40469a9d519ff286ec6ad006c6ae1f07f828072a.
    
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2023>

diff --git a/Xext/saver.c b/Xext/saver.c
index 5691fbbb2..1f5f82c35 100644
--- a/Xext/saver.c
+++ b/Xext/saver.c
@@ -601,6 +601,7 @@ ProcScreenSaverQueryVersion(ClientPtr client)
     xScreenSaverQueryVersionReply rep = {
         .type = X_Reply,
         .sequenceNumber = client->sequence,
+        .length = 0,
         .majorVersion = SERVER_SAVER_MAJOR_VERSION,
         .minorVersion = SERVER_SAVER_MINOR_VERSION
     };
@@ -609,6 +610,7 @@ ProcScreenSaverQueryVersion(ClientPtr client)
 
     if (client->swapped) {
         swaps(&rep.sequenceNumber);
+        swapl(&rep.length);
         swaps(&rep.majorVersion);
         swaps(&rep.minorVersion);
     }
@@ -620,6 +622,7 @@ static int
 ProcScreenSaverQueryInfo(ClientPtr client)
 {
     REQUEST(xScreenSaverQueryInfoReq);
+    xScreenSaverQueryInfoReply rep;
     int rc;
     ScreenSaverStuffPtr pSaver;
     DrawablePtr pDraw;
@@ -641,24 +644,30 @@ ProcScreenSaverQueryInfo(ClientPtr client)
     UpdateCurrentTime();
     lastInput = GetTimeInMillis() - LastEventTime(XIAllDevices).milliseconds;
 
-    xScreenSaverQueryInfoReply rep = {
+    rep = (xScreenSaverQueryInfoReply) {
         .type = X_Reply,
         .sequenceNumber = client->sequence,
+        .length = 0,
         .window = pSaver->wid
     };
     if (screenIsSaved != SCREEN_SAVER_OFF) {
         rep.state = ScreenSaverOn;
         if (ScreenSaverTime)
             rep.tilOrSince = lastInput - ScreenSaverTime;
+        else
+            rep.tilOrSince = 0;
     }
     else {
         if (ScreenSaverTime) {
             rep.state = ScreenSaverOff;
-            if (ScreenSaverTime >= lastInput)
+            if (ScreenSaverTime < lastInput)
+                rep.tilOrSince = 0;
+            else
                 rep.tilOrSince = ScreenSaverTime - lastInput;
         }
         else {
             rep.state = ScreenSaverDisabled;
+            rep.tilOrSince = 0;
         }
     }
     rep.idle = lastInput;
@@ -671,6 +680,7 @@ ProcScreenSaverQueryInfo(ClientPtr client)
         rep.kind = ScreenSaverInternal;
     if (client->swapped) {
         swaps(&rep.sequenceNumber);
+        swapl(&rep.length);
         swapl(&rep.window);
         swapl(&rep.tilOrSince);
         swapl(&rep.idle);
commit 74182c52e98b36857c025c7ff71c5ab5fe91f3d4
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date:   Sun Jun 15 12:46:41 2025 -0700

    Revert "Xext: saver: use explicit switch/case for dispatching"
    
    This reverts commit 8236ef3b5613d4243f6809f33f9984d11822a7ca.
    
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2023>

diff --git a/Xext/saver.c b/Xext/saver.c
index ad39a57aa..5691fbbb2 100644
--- a/Xext/saver.c
+++ b/Xext/saver.c
@@ -1242,26 +1242,23 @@ ProcScreenSaverSuspend(ClientPtr client)
     return Success;
 }
 
+static int (*NormalVector[]) (ClientPtr /* client */ ) = {
+        ProcScreenSaverQueryVersion,
+        ProcScreenSaverQueryInfo,
+        ProcScreenSaverSelectInput,
+        ProcScreenSaverSetAttributes,
+        ProcScreenSaverUnsetAttributes,
+        ProcScreenSaverSuspend,
+};
+
 static int
 ProcScreenSaverDispatch(ClientPtr client)
 {
     REQUEST(xReq);
-    switch (stuff->data) {
-        case X_ScreenSaverQueryVersion:
-            return ProcScreenSaverQueryVersion(client);
-        case X_ScreenSaverQueryInfo:
-            return ProcScreenSaverQueryInfo(client);
-        case X_ScreenSaverSelectInput:
-            return ProcScreenSaverSelectInput(client);
-        case X_ScreenSaverSetAttributes:
-            return ProcScreenSaverSetAttributes(client);
-        case X_ScreenSaverUnsetAttributes:
-            return ProcScreenSaverUnsetAttributes(client);
-        case X_ScreenSaverSuspend:
-            return ProcScreenSaverSuspend(client);
-        default:
-            return BadRequest;
-    }
+
+    if (stuff->data < ARRAY_SIZE(NormalVector))
+        return (*NormalVector[stuff->data]) (client);
+    return BadRequest;
 }
 
 static int _X_COLD
@@ -1318,26 +1315,23 @@ SProcScreenSaverSuspend(ClientPtr client)
     return ProcScreenSaverSuspend(client);
 }
 
+static int (*SwappedVector[]) (ClientPtr /* client */ ) = {
+        ProcScreenSaverQueryVersion,
+        SProcScreenSaverQueryInfo,
+        SProcScreenSaverSelectInput,
+        SProcScreenSaverSetAttributes,
+        SProcScreenSaverUnsetAttributes,
+        SProcScreenSaverSuspend,
+};
+
 static int _X_COLD
 SProcScreenSaverDispatch(ClientPtr client)
 {
     REQUEST(xReq);
-    switch (stuff->data) {
-        case X_ScreenSaverQueryVersion:
-            return ProcScreenSaverQueryVersion(client);
-        case X_ScreenSaverQueryInfo:
-            return SProcScreenSaverQueryInfo(client);
-        case X_ScreenSaverSelectInput:
-            return SProcScreenSaverSelectInput(client);
-        case X_ScreenSaverSetAttributes:
-            return SProcScreenSaverSetAttributes(client);
-        case X_ScreenSaverUnsetAttributes:
-            return SProcScreenSaverUnsetAttributes(client);
-        case X_ScreenSaverSuspend:
-            return SProcScreenSaverSuspend(client);
-        default:
-            return BadRequest;
-    }
+
+    if (stuff->data < ARRAY_SIZE(NormalVector))
+        return (*SwappedVector[stuff->data]) (client);
+    return BadRequest;
 }
 
 void


More information about the xorg-commit mailing list