dix: add dixClientForXID()

Retrieves the ClientPtr for the owner of given resource.
This way reducing the sites directly accessing clients[] array.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult
2025-03-05 15:05:56 +01:00
parent ed7f0bb0aa
commit a09805f675
12 changed files with 73 additions and 66 deletions

View File

@@ -866,7 +866,7 @@ RecordInstallHooks(RecordClientsAndProtocolPtr pRCAP, XID oneclient)
if (pRCAP->pRequestMajorOpSet) {
RecordSetIteratePtr pIter = NULL;
RecordSetInterval interval;
ClientPtr pClient = clients[dixClientIdForXID(client)];
ClientPtr pClient = dixClientForXID(client);
if (pClient && !RecordClientPrivate(pClient)) {
RecordClientPrivatePtr pClientPriv;
@@ -949,7 +949,7 @@ RecordUninstallHooks(RecordClientsAndProtocolPtr pRCAP, XID oneclient)
while (client) {
if (client != XRecordFutureClients) {
if (pRCAP->pRequestMajorOpSet) {
ClientPtr pClient = clients[dixClientIdForXID(client)];
ClientPtr pClient = dixClientForXID(client);
int c;
Bool otherRCAPwantsProcVector = FALSE;
RecordClientPrivatePtr pClientPriv = NULL;
@@ -1143,7 +1143,6 @@ RecordSanityCheckClientSpecifiers(ClientPtr client, XID *clientspecs,
int nspecs, XID errorspec)
{
int i;
int clientIndex;
int rc;
void *value;
@@ -1154,10 +1153,10 @@ RecordSanityCheckClientSpecifiers(ClientPtr client, XID *clientspecs,
continue;
if (errorspec && (CLIENT_BITS(clientspecs[i]) == errorspec))
return BadMatch;
clientIndex = dixClientIdForXID(clientspecs[i]);
if (clientIndex && clients[clientIndex] &&
clients[clientIndex]->clientState == ClientStateRunning) {
if (clientspecs[i] == clients[clientIndex]->clientAsMask)
ClientPtr pClient = dixClientForXID(clientspecs[i]);
if (pClient && pClient->index != 0 &&
pClient->clientState == ClientStateRunning) {
if (clientspecs[i] == pClient->clientAsMask)
continue;
rc = dixLookupResourceByClass(&value, clientspecs[i], RC_ANY,
client, DixGetAttrAccess);