mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-09 07:18:05 +02:00
Fix wrong bracket values when startOver = FALSE.
Currently, SyncComputeBracketValues reuses old values of bracket_greater
and bracket_less when startOver = FALSE. This can result in incorrect bracket
values. To fix this issue, the startOver parameter is removed, and we do not
reuse old values of bracket_greater and bracket_less.
X.Org Bug 27023 <http://bugs.freedesktop.org/show_bug.cgi?id=27023>
Signed-off-by: David James <davidjames@google.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 758b861447)
This commit is contained in:
parent
4bcc0448b4
commit
fd562d11d6
1 changed files with 8 additions and 11 deletions
19
Xext/sync.c
19
Xext/sync.c
|
|
@ -94,7 +94,7 @@ static SyncCounter **SysCounterList = NULL;
|
||||||
#define XSyncCAAllTrigger \
|
#define XSyncCAAllTrigger \
|
||||||
(XSyncCACounter | XSyncCAValueType | XSyncCAValue | XSyncCATestType)
|
(XSyncCACounter | XSyncCAValueType | XSyncCAValue | XSyncCATestType)
|
||||||
|
|
||||||
static void SyncComputeBracketValues(SyncCounter *, Bool);
|
static void SyncComputeBracketValues(SyncCounter *);
|
||||||
|
|
||||||
static void SyncInitServerTime(void);
|
static void SyncInitServerTime(void);
|
||||||
|
|
||||||
|
|
@ -167,7 +167,7 @@ SyncDeleteTriggerFromCounter(SyncTrigger *pTrigger)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSystemCounter(pTrigger->pCounter))
|
if (IsSystemCounter(pTrigger->pCounter))
|
||||||
SyncComputeBracketValues(pTrigger->pCounter, /*startOver*/ TRUE);
|
SyncComputeBracketValues(pTrigger->pCounter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -194,7 +194,7 @@ SyncAddTriggerToCounter(SyncTrigger *pTrigger)
|
||||||
pTrigger->pCounter->pTriglist = pCur;
|
pTrigger->pCounter->pTriglist = pCur;
|
||||||
|
|
||||||
if (IsSystemCounter(pTrigger->pCounter))
|
if (IsSystemCounter(pTrigger->pCounter))
|
||||||
SyncComputeBracketValues(pTrigger->pCounter, /*startOver*/ TRUE);
|
SyncComputeBracketValues(pTrigger->pCounter);
|
||||||
|
|
||||||
return Success;
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
@ -351,7 +351,7 @@ SyncInitTrigger(ClientPtr client, SyncTrigger *pTrigger, XSyncCounter counter,
|
||||||
}
|
}
|
||||||
else if (IsSystemCounter(pCounter))
|
else if (IsSystemCounter(pCounter))
|
||||||
{
|
{
|
||||||
SyncComputeBracketValues(pCounter, /*startOver*/ TRUE);
|
SyncComputeBracketValues(pCounter);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Success;
|
return Success;
|
||||||
|
|
@ -646,7 +646,7 @@ SyncChangeCounter(SyncCounter *pCounter, CARD64 newval)
|
||||||
|
|
||||||
if (IsSystemCounter(pCounter))
|
if (IsSystemCounter(pCounter))
|
||||||
{
|
{
|
||||||
SyncComputeBracketValues(pCounter, /* startOver */ FALSE);
|
SyncComputeBracketValues(pCounter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -913,7 +913,7 @@ SyncDestroySystemCounter(pointer pSysCounter)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
SyncComputeBracketValues(SyncCounter *pCounter, Bool startOver)
|
SyncComputeBracketValues(SyncCounter *pCounter)
|
||||||
{
|
{
|
||||||
SyncTriggerList *pCur;
|
SyncTriggerList *pCur;
|
||||||
SyncTrigger *pTrigger;
|
SyncTrigger *pTrigger;
|
||||||
|
|
@ -930,11 +930,8 @@ SyncComputeBracketValues(SyncCounter *pCounter, Bool startOver)
|
||||||
if (ct == XSyncCounterNeverChanges)
|
if (ct == XSyncCounterNeverChanges)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (startOver)
|
XSyncMaxValue(&psci->bracket_greater);
|
||||||
{
|
XSyncMinValue(&psci->bracket_less);
|
||||||
XSyncMaxValue(&psci->bracket_greater);
|
|
||||||
XSyncMinValue(&psci->bracket_less);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (pCur = pCounter->pTriglist; pCur; pCur = pCur->next)
|
for (pCur = pCounter->pTriglist; pCur; pCur = pCur->next)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue