xserver: Branch 'xorg-server-1.5-apple'

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Tue Aug 25 20:55:20 PDT 2009


 Xext/sync.c |   32 ++++++++++++++------------------
 1 file changed, 14 insertions(+), 18 deletions(-)

New commits:
commit f134395a8279fc906b4f18b7c08591072bd1b84a
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Thu Aug 13 16:37:00 2009 +1000

    Xext: fix up wrong conditions for negative sync transitions.
    
    If the counter had a value higher than the trigger value for a negative
    transition, the trigger value did not get set.
    
    The correct sequence of checks is:
    if (positive transition)
       if (counter value < trigger value)
          set up trigger
    if (negative transition)
       if (counter value > trigger value)
          set up trigger
    
    Red Hat Bug 501601 <https://bugzilla.redhat.com/show_bug.cgi?id=501601>
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit db568f9eabf3450d8a023597ff007df355b13ea8)

diff --git a/Xext/sync.c b/Xext/sync.c
index 24a4b60..db7b7c3 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -1167,28 +1167,24 @@ SyncComputeBracketValues(pCounter, startOver)
 		pnewltval = &psci->bracket_less;
 	    }
 	}
-	else if ( (pTrigger->test_type == XSyncPositiveTransition &&
+	else if (pTrigger->test_type == XSyncNegativeTransition &&
 		   ct != XSyncCounterNeverIncreases)
-		 ||
-		 (pTrigger->test_type == XSyncNegativeTransition &&
+	{
+	    if (XSyncValueGreaterThan(pCounter->value, pTrigger->test_value) &&
+		XSyncValueGreaterThan(pTrigger->test_value, psci->bracket_less))
+	    {
+		psci->bracket_less = pTrigger->test_value;
+		pnewltval = &psci->bracket_less;
+	    }
+	}
+        else if (pTrigger->test_type == XSyncPositiveTransition &&
 		  ct != XSyncCounterNeverDecreases)
-		 )
 	{
-	    if (XSyncValueLessThan(pCounter->value, pTrigger->test_value))
+	    if (XSyncValueLessThan(pCounter->value, pTrigger->test_value) &&
+		XSyncValueLessThan(pTrigger->test_value, psci->bracket_greater))
 	    {
-		if (XSyncValueLessThan(pTrigger->test_value,
-				       psci->bracket_greater))
-		{
-		    psci->bracket_greater = pTrigger->test_value;
-		    pnewgtval = &psci->bracket_greater;
-		}
-		else
-		if (XSyncValueGreaterThan(pTrigger->test_value,
-					  psci->bracket_less))
-		{
-		    psci->bracket_less = pTrigger->test_value;
-		    pnewltval = &psci->bracket_less;
-		}
+		psci->bracket_greater = pTrigger->test_value;
+		pnewgtval = &psci->bracket_greater;
 	    }
 	}
     } /* end for each trigger */


More information about the xorg-commit mailing list