Sync: Always initialise system counter list
Sync is designed to let you add system counters before the extension has been initialised, which means the system counter list may well be full of bees. Make sure it's initialised before we add to it, to avoid the risk of fatal injury. Signed-off-by: Daniel Stone <daniel@fooishbar.org> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
34cf559bcf
commit
f937c3d501
|
@ -951,6 +951,7 @@ SyncCreateSystemCounter(const char *name,
|
||||||
if (RTCounter == 0) {
|
if (RTCounter == 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
xorg_list_init(&SysCounterList);
|
||||||
}
|
}
|
||||||
|
|
||||||
pCounter = SyncCreateCounter(NULL, FakeClientID(0), initial);
|
pCounter = SyncCreateCounter(NULL, FakeClientID(0), initial);
|
||||||
|
@ -2448,13 +2449,12 @@ SyncExtensionInit(void)
|
||||||
ExtensionEntry *extEntry;
|
ExtensionEntry *extEntry;
|
||||||
int s;
|
int s;
|
||||||
|
|
||||||
xorg_list_init(&SysCounterList);
|
|
||||||
|
|
||||||
for (s = 0; s < screenInfo.numScreens; s++)
|
for (s = 0; s < screenInfo.numScreens; s++)
|
||||||
miSyncSetup(screenInfo.screens[s]);
|
miSyncSetup(screenInfo.screens[s]);
|
||||||
|
|
||||||
if (RTCounter == 0) {
|
if (RTCounter == 0) {
|
||||||
RTCounter = CreateNewResourceType(FreeCounter, "SyncCounter");
|
RTCounter = CreateNewResourceType(FreeCounter, "SyncCounter");
|
||||||
|
xorg_list_init(&SysCounterList);
|
||||||
}
|
}
|
||||||
RTAlarm = CreateNewResourceType(FreeAlarm, "SyncAlarm");
|
RTAlarm = CreateNewResourceType(FreeAlarm, "SyncAlarm");
|
||||||
RTAwait = CreateNewResourceType(FreeAwait, "SyncAwait");
|
RTAwait = CreateNewResourceType(FreeAwait, "SyncAwait");
|
||||||
|
|
Loading…
Reference in New Issue