summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2011-12-13 21:00:05 -0500
committerAdam Jackson <ajax@redhat.com>2012-01-06 13:29:53 -0500
commit11977fab546da35d579ebe285e3c26864007805e (patch)
treeec8b3a9481677da0404cb0bbe39c2c9ab60bb60f
parenta4553019a10b4e01cc06f3081db71a83338697b4 (diff)
xace: ricer tuning for XaceHook
gcc doesn't want to hoist the check for XaceHooks[hook] != NULL above the varargs code for some reason, so do it ourselves. Before: 40000000 trep @ 0.0010 msec (1050420.2/sec): PutImage 10x10 square 60000000 trep @ 0.0005 msec (1921147.6/sec): ShmPutImage 10x10 square After: 40000000 trep @ 0.0009 msec (1087458.5/sec): PutImage 10x10 square 60000000 trep @ 0.0005 msec (2012238.6/sec): ShmPutImage 10x10 square Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
-rw-r--r--Xext/xace.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Xext/xace.c b/Xext/xace.c
index c757cad05..ef69fe363 100644
--- a/Xext/xace.c
+++ b/Xext/xace.c
@@ -101,6 +101,10 @@ int XaceHook(int hook, ...)
} u;
int *prv = NULL; /* points to return value from callback */
va_list ap; /* argument list */
+
+ if (!XaceHooks[hook])
+ return Success;
+
va_start(ap, hook);
/* Marshal arguments for passing to callback.