From 60ff56050b64183cb6e58f54223c8a3ddc2e704b Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Fri, 18 Apr 2008 22:17:53 -0700 Subject: [PATCH] Revert "Optimize dixLookupPrivate for repeated lookups of the same private." The patch was wildly unsafe for SIGIO, and made everything full of crashy crashy fail. This reverts commit 9b30cc524867a0ad3d0d2227e167f4284830ab4e. --- include/privates.h | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/include/privates.h b/include/privates.h index 093d17779..8d59b728f 100644 --- a/include/privates.h +++ b/include/privates.h @@ -46,20 +46,13 @@ dixAllocatePrivate(PrivateRec **privates, const DevPrivateKey key); static _X_INLINE pointer dixLookupPrivate(PrivateRec **privates, const DevPrivateKey key) { - PrivateRec *rec, *prev; + PrivateRec *rec = *privates; pointer *ptr; - for (rec = *privates, prev = NULL; rec; prev = rec, rec = rec->next) { - if (rec->key != key) - continue; - - if (prev) { - prev->next = rec->next; - rec->next = *privates; - *privates = rec; - } - - return rec->value; + while (rec) { + if (rec->key == key) + return rec->value; + rec = rec->next; } ptr = dixAllocatePrivate(privates, key);