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