xserver: Branch 'master'

Daniel Stone daniels at kemper.freedesktop.org
Fri Apr 18 22:17:53 PDT 2008


 include/privates.h |   17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

New commits:
commit 60ff56050b64183cb6e58f54223c8a3ddc2e704b
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Fri Apr 18 22:17:53 2008 -0700

    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.

diff --git a/include/privates.h b/include/privates.h
index 093d177..8d59b72 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);


More information about the xorg-commit mailing list