diff options
author | Daniel Stone <daniel@fooishbar.org> | 2012-07-10 09:10:21 +0100 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-07-10 23:12:04 -0700 |
commit | f937c3d50157a9a42d2f2f10590b6b139ce18a29 (patch) | |
tree | 7d251255a75f1f4ba286069bf4ce271d59d992ec /Xext | |
parent | 34cf559bcf99dad550527b5ff53f247f0e8e73ee (diff) |
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>
Diffstat (limited to 'Xext')
-rw-r--r-- | Xext/sync.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Xext/sync.c b/Xext/sync.c index 8a333dd3a..b8f094db5 100644 --- a/Xext/sync.c +++ b/Xext/sync.c @@ -951,6 +951,7 @@ SyncCreateSystemCounter(const char *name, if (RTCounter == 0) { return NULL; } + xorg_list_init(&SysCounterList); } pCounter = SyncCreateCounter(NULL, FakeClientID(0), initial); @@ -2448,13 +2449,12 @@ SyncExtensionInit(void) ExtensionEntry *extEntry; int s; - xorg_list_init(&SysCounterList); - for (s = 0; s < screenInfo.numScreens; s++) miSyncSetup(screenInfo.screens[s]); if (RTCounter == 0) { RTCounter = CreateNewResourceType(FreeCounter, "SyncCounter"); + xorg_list_init(&SysCounterList); } RTAlarm = CreateNewResourceType(FreeAlarm, "SyncAlarm"); RTAwait = CreateNewResourceType(FreeAwait, "SyncAwait"); |