From 9d8fc33cae2fee7777edd20658dbf6a3ffb3d557 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 20 Aug 2009 16:56:04 -0400 Subject: [PATCH] composite: Move screen init before extension registration. Otherwise, you'd still advertise the extension even if no screens actually supported it, and the first Composite protocol request would probably crash. --- composite/compext.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/composite/compext.c b/composite/compext.c index 608f29a8a..56b4f2784 100644 --- a/composite/compext.c +++ b/composite/compext.c @@ -569,9 +569,14 @@ CompositeExtensionInit (void) if (!dixRequestPrivate(CompositeClientPrivateKey, sizeof(CompositeClientRec))) return; + if (!AddCallback (&ClientStateCallback, CompositeClientCallback, 0)) return; + for (s = 0; s < screenInfo.numScreens; s++) + if (!compScreenInit (screenInfo.screens[s])) + return; + extEntry = AddExtension (COMPOSITE_NAME, 0, 0, ProcCompositeDispatch, SProcCompositeDispatch, NULL, StandardMinorOpcode); @@ -579,9 +584,6 @@ CompositeExtensionInit (void) return; CompositeReqCode = (CARD8) extEntry->base; - for (s = 0; s < screenInfo.numScreens; s++) - if (!compScreenInit (screenInfo.screens[s])) - return; miRegisterRedirectBorderClipProc (compSetRedirectBorderClip, compGetRedirectBorderClip);