Use the wrapper functions consistently instead of hardcoding unix
knowledge everywhere directly.

Signed-off-by: Adam Jackson <[email protected]>
---
 os/WaitFor.c    |    3 +--
 os/connection.c |   44 ++++++++++++++++++++------------------------
 os/io.c         |    2 +-
 os/osdep.h      |    6 +-----
 4 files changed, 23 insertions(+), 32 deletions(-)

diff --git a/os/WaitFor.c b/os/WaitFor.c
index dfe85e5..7d10183 100644
--- a/os/WaitFor.c
+++ b/os/WaitFor.c
@@ -338,8 +338,7 @@ WaitForSomething(int *pClientsReady)
                int client_priority, client_index;
 
                curclient = mffs (clientsReadable.fds_bits[i]) - 1;
-               client_index = /* raphael: modified */
-                       ConnectionTranslation[curclient + (i * (sizeof(fd_mask) 
* 8))];
+                client_index = GetConnectionTranslation(curclient);
 #else
        int highest_priority = 0;
        fd_set savedClientsReadable;
diff --git a/os/connection.c b/os/connection.c
index 3ff93bb..bf16f6a 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -159,7 +159,7 @@ static fd_set SavedClientsWithInput;
 int GrabInProgress = 0;
 
 #if !defined(WIN32)
-int *ConnectionTranslation = NULL;
+static int *ConnectionTranslation = NULL;
 #else
 /*
  * On NT fds are not between 0 and MAXSOCKS, they are unrelated, and there is
@@ -179,15 +179,24 @@ struct _ct_node {
     int value;
 };
 
-struct _ct_node *ct_head[256];
+static struct _ct_node *ct_head[256];
+#endif
 
 void InitConnectionTranslation(void)
 {
+#ifndef WIN32
+    if (!ConnectionTranslation)
+        ConnectionTranslation = xnfalloc(sizeof(int)*(lastfdesc + 1));
+#else
     bzero(ct_head, sizeof(ct_head));
+#endif
 }
 
 int GetConnectionTranslation(int conn)
 {
+#ifndef WIN32
+    return ConnectionTranslation[conn];
+#else
     struct _ct_node *node = ct_head[conn & 0xff];
     while (node != NULL)
     {
@@ -196,10 +205,14 @@ int GetConnectionTranslation(int conn)
         node = node->next;
     }
     return 0;
+#endif
 }
 
 void SetConnectionTranslation(int conn, int client)
 {
+#ifndef WIN32
+    ConnectionTranslation[conn] = client;
+#else
     struct _ct_node **node = ct_head + (conn & 0xff);
     if (client == 0) /* remove entry */
     {
@@ -232,10 +245,14 @@ void SetConnectionTranslation(int conn, int client)
         (*node)->value = client;
         return;
     }
+#endif
 }
 
 void ClearConnectionTranslation(void)
 {
+#ifndef WIN32
+    for (i=0; i<MaxClients; i++) ConnectionTranslation[i] = 0;
+#else
     unsigned i;
     for (i = 0; i < 256; i++)
     {
@@ -247,8 +264,8 @@ void ClearConnectionTranslation(void)
             xfree(temp);
         }
     }
-}
 #endif
+}
 
 static XtransConnInfo  *ListenTransConns = NULL;
 static int             *ListenTransFds = NULL;
@@ -314,12 +331,7 @@ InitConnectionLimits(void)
     ErrorF("InitConnectionLimits: MaxClients = %d\n", MaxClients);
 #endif
 
-#if !defined(WIN32)
-    if (!ConnectionTranslation)
-        ConnectionTranslation = (int *)xnfalloc(sizeof(int)*(lastfdesc + 1));
-#else
     InitConnectionTranslation();
-#endif
 }
 
 /*
@@ -377,11 +389,7 @@ CreateWellKnownSockets(void)
     FD_ZERO(&LastSelectMask);
     FD_ZERO(&ClientsWithInput);
 
-#if !defined(WIN32)
-    for (i=0; i<MaxClients; i++) ConnectionTranslation[i] = 0;
-#else
     ClearConnectionTranslation();
-#endif
 
     FD_ZERO (&WellKnownConnections);
 
@@ -751,11 +759,7 @@ AllocNewConnection (XtransConnInfo trans_conn, int fd, 
CARD32 conn_time)
        xfree (oc);
        return NullClient;
     }
-#if !defined(WIN32)
-    ConnectionTranslation[fd] = client->index;
-#else
     SetConnectionTranslation(fd, client->index);
-#endif
     if (GrabInProgress)
     {
         FD_SET(fd, &SavedAllClients);
@@ -845,11 +849,7 @@ EstablishNewConnections(ClientPtr clientUnused, pointer 
closure)
        if (newconn < lastfdesc)
        {
                int clientid;
-#if !defined(WIN32)
-               clientid = ConnectionTranslation[newconn];
-#else
                clientid = GetConnectionTranslation(newconn);
-#endif
                if(clientid && (client = clients[clientid]))
                        CloseDownClient(client);
        }
@@ -938,11 +938,7 @@ CloseDownFileDescriptor(OsCommPtr oc)
        _XSERVTransDisconnect(oc->trans_conn);
        _XSERVTransClose(oc->trans_conn);
     }
-#ifndef WIN32
-    ConnectionTranslation[connection] = 0;
-#else
     SetConnectionTranslation(connection, 0);
-#endif    
     FD_CLR(connection, &AllSockets);
     FD_CLR(connection, &AllClients);
     FD_CLR(connection, &ClientsWithInput);
diff --git a/os/io.c b/os/io.c
index 64b64ae..2e8d1a0 100644
--- a/os/io.c
+++ b/os/io.c
@@ -633,7 +633,7 @@ FlushAllOutput(void)
        {
            index = ffs(mask) - 1;
            mask &= ~lowbit(mask);
-           if ((index = ConnectionTranslation[(base * (sizeof(fd_mask)*8)) + 
index]) == 0)
+            if ((index = GetConnectionTranslation(index)) == 0)
                continue;
            client = clients[index];
            if (client->clientGone)
diff --git a/os/osdep.h b/os/osdep.h
index 3d75bba..4ebe0e9 100644
--- a/os/osdep.h
+++ b/os/osdep.h
@@ -195,13 +195,9 @@ extern fd_set ClientsWriteBlocked;
 extern fd_set OutputPending;
 extern fd_set IgnoredClientsWithInput;
 
-#ifndef WIN32
-extern int *ConnectionTranslation;
-#else
 extern int GetConnectionTranslation(int conn);
 extern void SetConnectionTranslation(int conn, int client);
-extern void ClearConnectionTranslation();
-#endif
+extern void ClearConnectionTranslation(void);
  
 extern Bool NewOutputPending;
 extern Bool AnyClientsWriteBlocked;
-- 
1.6.5.2

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to