open-src/xserver/xorg/CreateNewResourceType.patch
changeset 1088 1c99106ccbe0
parent 1087 a8aa060182e1
child 1089 590b35f0ad83
--- a/open-src/xserver/xorg/CreateNewResourceType.patch	Wed Mar 09 16:02:37 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,291 +0,0 @@
-From eb750f8b5e14751d4c40b50499baec5d2ba79db9 Mon Sep 17 00:00:00 2001
-From: Alan Coopersmith <[email protected]>
-Date: Fri, 11 Dec 2009 00:46:22 -0800
-Subject: [PATCH] Check for failures from CreateNewResourceType
-
-Make sure to check return value before setting bitmask flags.
-For most calls, just fails to init the extension.   Since Xinput
-already calls FatalError() on initialization failure, so does
-failure to allocate Xinput's resource type.
-
-Signed-off-by: Alan Coopersmith <[email protected]>
-Reviewed-by: Keith Packard <[email protected]>
----
- Xext/mbuf.c                   |    4 +++-
- Xext/panoramiX.c              |   16 ++++++++++------
- Xext/sync.c                   |    8 ++++++--
- Xext/xvdisp.c                 |    4 ++--
- Xi/extinit.c                  |    2 ++
- dbe/dbe.c                     |    9 ++++++++-
- glx/glxext.c                  |    3 +++
- hw/dmx/glxProxy/glxext.c      |    4 ++++
- hw/kdrive/ephyr/ephyrdriext.c |    4 ++++
- hw/xfree86/dri/dri.c          |    3 +++
- hw/xfree86/dri2/dri2ext.c     |    6 +++++-
- hw/xquartz/xpr/dri.c          |    2 +-
- xfixes/cursor.c               |    2 +-
- xfixes/region.c               |    3 ++-
- xkb/xkb.c                     |    5 ++++-
- 15 files changed, 58 insertions(+), 17 deletions(-)
-
-diff --git a/Xext/mbuf.c b/Xext/mbuf.c
-index 1f24974..af31221 100644
---- a/Xext/mbuf.c
-+++ b/Xext/mbuf.c
-@@ -467,7 +467,9 @@ MultibufferExtensionInit()
-      * create the resource types
-      */
-     MultibufferDrawableResType =
--	CreateNewResourceType(MultibufferDrawableDelete)|RC_DRAWABLE;
-+	CreateNewResourceType(MultibufferDrawableDelete);
-+    if (MultiBufferDrawableResType)
-+	MultibufferDrawableResType |= RC_DRAWABLE;
-     MultibufferResType = CreateNewResourceType(MultibufferDelete);
-     MultibuffersResType = CreateNewResourceType(MultibuffersDelete);
-     OtherClientResType = CreateNewResourceType(OtherClientDelete);
-diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
-index 4b7b07e..f48bd36 100644
---- a/Xext/panoramiX.c
-+++ b/Xext/panoramiX.c
-@@ -503,15 +503,19 @@ void PanoramiXExtensionInit(int argc, char *argv[])
- 	}
- 
- 	XRC_DRAWABLE = CreateNewResourceClass();
--	XRT_WINDOW = CreateNewResourceType(XineramaDeleteResource) | 
--						XRC_DRAWABLE;
--	XRT_PIXMAP = CreateNewResourceType(XineramaDeleteResource) | 
--						XRC_DRAWABLE;
-+	XRT_WINDOW = CreateNewResourceType(XineramaDeleteResource);
-+	if (XRT_WINDOW)
-+	    XRT_WINDOW |= XRC_DRAWABLE;
-+	XRT_PIXMAP = CreateNewResourceType(XineramaDeleteResource);
-+	if (XRT_PIXMAP)
-+	    XRT_PIXMAP |= XRC_DRAWABLE;
- 	XRT_GC = CreateNewResourceType(XineramaDeleteResource);
- 	XRT_COLORMAP = CreateNewResourceType(XineramaDeleteResource);
- 
--	panoramiXGeneration = serverGeneration;
--	success = TRUE;
-+	if (XRT_WINDOW && XRT_PIXMAP && XRT_GC && XRT_COLORMAP) {
-+	    panoramiXGeneration = serverGeneration;
-+	    success = TRUE;
-+	}
-     }
- 
-     if (!success) {
-diff --git a/Xext/sync.c b/Xext/sync.c
-index 667f8ab..d8a2b15 100644
---- a/Xext/sync.c
-+++ b/Xext/sync.c
-@@ -2113,8 +2113,12 @@ SyncExtensionInit(void)
- 	RTCounter = CreateNewResourceType(FreeCounter);
-     }
-     RTAlarm = CreateNewResourceType(FreeAlarm);
--    RTAwait = CreateNewResourceType(FreeAwait)|RC_NEVERRETAIN;
--    RTAlarmClient = CreateNewResourceType(FreeAlarmClient)|RC_NEVERRETAIN;
-+    RTAwait = CreateNewResourceType(FreeAwait);
-+    if (RTAwait)
-+	RTAwait |= RC_NEVERRETAIN;
-+    RTAlarmClient = CreateNewResourceType(FreeAlarmClient);
-+    if (RTAlarmClient)
-+	RTAlarmClient |= RC_NEVERRETAIN;
- 
-     if (RTCounter == 0 || RTAwait == 0 || RTAlarm == 0 ||
- 	RTAlarmClient == 0 ||
-diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c
-index 5229916..1f3fc0f 100644
---- a/Xext/xvdisp.c
-+++ b/Xext/xvdisp.c
-@@ -1865,8 +1865,8 @@ void XineramifyXv(void)
- 
-    XvXRTPort = CreateNewResourceType(XineramaDeleteResource);
- 
--   if(!xvsp0) return;
--   
-+   if (!xvsp0 || !XvXRTPort) return;
-+
-    for(i = 0; i < xvsp0->nAdaptors; i++) {
-       refAdapt = xvsp0->pAdaptors + i;
- 
-diff --git a/Xi/extinit.c b/Xi/extinit.c
-index 0c12919..372f77f 100644
---- a/Xi/extinit.c
-+++ b/Xi/extinit.c
-@@ -1270,6 +1270,8 @@ XInputExtensionInit(void)
- 	XIVersion = thisversion;
- 	MakeDeviceTypeAtoms();
- 	RT_INPUTCLIENT = CreateNewResourceType((DeleteType) InputClientGone);
-+	if (!RT_INPUTCLIENT)
-+	    FatalError("Failed to add resource type for XI.\n");
- 	RegisterResourceName(RT_INPUTCLIENT, "INPUTCLIENT");
- 	FixExtensionEvents(extEntry);
- 	ReplySwapVector[IReqCode] = (ReplySwapPtr) SReplyIDispatch;
-diff --git a/dbe/dbe.c b/dbe/dbe.c
-index a4f853d..8d2a343 100644
---- a/dbe/dbe.c
-+++ b/dbe/dbe.c
-@@ -1573,9 +1573,16 @@ DbeExtensionInit(void)
- 
-     /* Create the resource types. */
-     dbeDrawableResType =
--        CreateNewResourceType(DbeDrawableDelete) | RC_DRAWABLE;
-+        CreateNewResourceType(DbeDrawableDelete);
-+    if (!dbeDrawableResType)
-+	return;
-+    dbeDrawableResType |= RC_DRAWABLE;
-+
-     dbeWindowPrivResType =
-         CreateNewResourceType(DbeWindowPrivDelete);
-+    if (!dbeWindowPrivResType)
-+	return;
-+
-     if (!dixRegisterPrivateOffset(dbeDrawableResType,
- 				  offsetof(PixmapRec, devPrivates)))
- 	return;
-diff --git a/glx/glxext.c b/glx/glxext.c
-index 9f9c0ed..546d968 100644
---- a/glx/glxext.c
-+++ b/glx/glxext.c
-@@ -347,6 +347,9 @@ void GlxExtensionInit(void)
-     __glXDrawableRes = CreateNewResourceType((DeleteType)DrawableGone);
-     __glXSwapBarrierRes = CreateNewResourceType((DeleteType)SwapBarrierGone);
- 
-+    if (!__glXContextRes || !__glXDrawableRes || !__glXSwapBarrierRes)
-+	return;
-+
-     RegisterResourceName(__glXContextRes, "GLXContext");
-     RegisterResourceName(__glXDrawableRes, "GLXDrawable");
-     RegisterResourceName(__glXSwapBarrierRes, "GLXSwapBarrier");
-diff --git a/hw/dmx/glxProxy/glxext.c b/hw/dmx/glxProxy/glxext.c
-index b30d144..0c39068 100644
---- a/hw/dmx/glxProxy/glxext.c
-+++ b/hw/dmx/glxProxy/glxext.c
-@@ -299,6 +299,10 @@ void GlxExtensionInit(void)
-     __glXWindowRes = CreateNewResourceType((DeleteType)WindowGone);
-     __glXPbufferRes = CreateNewResourceType((DeleteType)PbufferGone);
- 
-+    if (!__glXContextRes || !__glXClientRes || !__glXPixmapRes ||
-+	!__glXWindowRes || !__glXPbufferRes)
-+	return;
-+
-     /*
-     ** Add extension to server extensions.
-     */
-diff --git a/hw/kdrive/ephyr/ephyrdriext.c b/hw/kdrive/ephyr/ephyrdriext.c
-index 231b098..ba1733b 100644
---- a/hw/kdrive/ephyr/ephyrdriext.c
-+++ b/hw/kdrive/ephyr/ephyrdriext.c
-@@ -141,6 +141,10 @@ ephyrDRIExtensionInit (ScreenPtr a_screen)
- 
- #ifdef XF86DRI_EVENTS
-     EventType = CreateNewResourceType (XF86DRIFreeEvents);
-+    if (!EventType) {
-+        EPHYR_LOG_ERROR ("failed to register DRI event resource type\n") ;
-+        goto out ;
-+    }
- #endif
- 
-     if ((extEntry = AddExtension(XF86DRINAME,
-diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c
-index 0de9be6..1a6cb4d 100644
---- a/hw/xfree86/dri/dri.c
-+++ b/hw/xfree86/dri/dri.c
-@@ -792,6 +792,9 @@ DRIExtensionInit(void)
-     DRIDrawablePrivResType = CreateNewResourceType(DRIDrawablePrivDelete);
-     DRIContextPrivResType = CreateNewResourceType(DRIContextPrivDelete);
- 
-+    if (!DRIDrawablePrivResType || !DRIContextPrivResType)
-+	return FALSE;
-+
-     RegisterBlockAndWakeupHandlers(DRIBlockHandler, DRIWakeupHandler, NULL);
- 
-     return TRUE;
-diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
-index dc07b47..8acf267 100644
---- a/hw/xfree86/dri2/dri2ext.c
-+++ b/hw/xfree86/dri2/dri2ext.c
-@@ -416,6 +416,11 @@ static int DRI2DrawableGone(pointer p, XID id)
- static void
- DRI2ExtensionInit(void)
- {
-+    dri2DrawableRes = CreateNewResourceType(DRI2DrawableGone);
-+
-+    if (!dri2DrawableRes)
-+	return;
-+
-     dri2Extension = AddExtension(DRI2_NAME,
- 				 DRI2NumberEvents,
- 				 DRI2NumberErrors,
-@@ -424,7 +429,6 @@ DRI2ExtensionInit(void)
- 				 NULL,
- 				 StandardMinorOpcode);
- 
--    dri2DrawableRes = CreateNewResourceType(DRI2DrawableGone);
- }
- 
- extern Bool noDRI2Extension;
-diff --git a/hw/xquartz/xpr/dri.c b/hw/xquartz/xpr/dri.c
-index f570bee..a9c0f22 100644
---- a/hw/xquartz/xpr/dri.c
-+++ b/hw/xquartz/xpr/dri.c
-@@ -279,7 +279,7 @@ DRIExtensionInit(void)
- {
-     DRIDrawablePrivResType = CreateNewResourceType(DRIDrawablePrivDelete);
- 
--    return TRUE;
-+    return (DRIDrawablePrivResType != 0);
- }
- 
- void
-diff --git a/xfixes/cursor.c b/xfixes/cursor.c
-index 60d4222..c3e1e35 100644
---- a/xfixes/cursor.c
-+++ b/xfixes/cursor.c
-@@ -1095,6 +1095,6 @@ XFixesCursorInit (void)
- 	}
-     }
- 
--    return CursorClientType && CursorWindowType;
-+    return CursorClientType && CursorHideCountType && CursorWindowType;
- }
- 
-diff --git a/xfixes/region.c b/xfixes/region.c
-index 966eda0..59d8cee 100644
---- a/xfixes/region.c
-+++ b/xfixes/region.c
-@@ -64,7 +64,8 @@ Bool
- XFixesRegionInit (void)
- {
-     RegionResType = CreateNewResourceType(RegionResFree);
--    return TRUE;
-+
-+    return (RegionResType != 0);
- }
- 
- int
-diff --git a/xkb/xkb.c b/xkb/xkb.c
-index 35f8d1c..c490f8b 100644
---- a/xkb/xkb.c
-+++ b/xkb/xkb.c
-@@ -6704,6 +6704,10 @@ XkbExtensionInit(void)
- {
-     ExtensionEntry *extEntry;
- 
-+    RT_XKBCLIENT = CreateNewResourceType(XkbClientGone);
-+    if (!RT_XKBCLIENT)
-+	return;
-+
-     if ((extEntry = AddExtension(XkbName, XkbNumberEvents, XkbNumberErrors,
- 				 ProcXkbDispatch, SProcXkbDispatch,
- 				 NULL, StandardMinorOpcode))) {
-@@ -6711,7 +6715,6 @@ XkbExtensionInit(void)
- 	XkbEventBase = (unsigned char)extEntry->eventBase;
- 	XkbErrorBase = (unsigned char)extEntry->errorBase;
- 	XkbKeyboardErrorCode = XkbErrorBase+XkbKeyboard;
--	RT_XKBCLIENT = CreateNewResourceType(XkbClientGone);
-     }
-     return;
- }
--- 
-1.5.6.5
-