Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
---
 dix/ptrveloc.c |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/dix/ptrveloc.c b/dix/ptrveloc.c
index d37d1d9..c23d513 100644
--- a/dix/ptrveloc.c
+++ b/dix/ptrveloc.c
@@ -516,22 +516,21 @@ DoGetDirection(int dx, int dy){
 static int
 GetDirection(int dx, int dy){
     static int cache[DIRECTION_CACHE_SIZE][DIRECTION_CACHE_SIZE];
-    int i;
+    int dir;
     if (abs(dx) <= DIRECTION_CACHE_RANGE &&
        abs(dy) <= DIRECTION_CACHE_RANGE) {
        /* cacheable */
-       i = cache[DIRECTION_CACHE_RANGE+dx][DIRECTION_CACHE_RANGE+dy];
-       if(i != 0){
-           return i;
-       }else{
-           i = DoGetDirection(dx, dy);
-           cache[DIRECTION_CACHE_RANGE+dx][DIRECTION_CACHE_RANGE+dy] = i;
-           return i;
+       dir = cache[DIRECTION_CACHE_RANGE+dx][DIRECTION_CACHE_RANGE+dy];
+       if(dir == 0) {
+           dir = DoGetDirection(dx, dy);
+           cache[DIRECTION_CACHE_RANGE+dx][DIRECTION_CACHE_RANGE+dy] = dir;
        }
     }else{
        /* non-cacheable */
-       return DoGetDirection(dx, dy);
+       dir = DoGetDirection(dx, dy);
     }
+
+    return dir;
 }
 
 #undef DIRECTION_CACHE_RANGE
-- 
1.7.4.4

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to