From f937c3d50157a9a42d2f2f10590b6b139ce18a29 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Tue, 10 Jul 2012 09:10:21 +0100 Subject: [PATCH] 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 Reviewed-by: Alan Coopersmith Signed-off-by: Keith Packard --- Xext/sync.c | 4 ++-- 1 file 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");