[PATCH 07/20] dix: use single return value in GetDirection

Peter Hutterer peter.hutterer at who-t.net
Tue Apr 19 23:28:16 PDT 2011


Signed-off-by: Peter Hutterer <peter.hutterer at 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



More information about the xorg-devel mailing list