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 <alan.coopersmith@sun.com> Reviewed-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
1df4bd6011
commit
eb750f8b5e
|
@ -467,7 +467,9 @@ MultibufferExtensionInit()
|
||||||
* create the resource types
|
* create the resource types
|
||||||
*/
|
*/
|
||||||
MultibufferDrawableResType =
|
MultibufferDrawableResType =
|
||||||
CreateNewResourceType(MultibufferDrawableDelete)|RC_DRAWABLE;
|
CreateNewResourceType(MultibufferDrawableDelete);
|
||||||
|
if (MultiBufferDrawableResType)
|
||||||
|
MultibufferDrawableResType |= RC_DRAWABLE;
|
||||||
MultibufferResType = CreateNewResourceType(MultibufferDelete);
|
MultibufferResType = CreateNewResourceType(MultibufferDelete);
|
||||||
MultibuffersResType = CreateNewResourceType(MultibuffersDelete);
|
MultibuffersResType = CreateNewResourceType(MultibuffersDelete);
|
||||||
OtherClientResType = CreateNewResourceType(OtherClientDelete);
|
OtherClientResType = CreateNewResourceType(OtherClientDelete);
|
||||||
|
|
|
@ -503,15 +503,19 @@ void PanoramiXExtensionInit(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
XRC_DRAWABLE = CreateNewResourceClass();
|
XRC_DRAWABLE = CreateNewResourceClass();
|
||||||
XRT_WINDOW = CreateNewResourceType(XineramaDeleteResource) |
|
XRT_WINDOW = CreateNewResourceType(XineramaDeleteResource);
|
||||||
XRC_DRAWABLE;
|
if (XRT_WINDOW)
|
||||||
XRT_PIXMAP = CreateNewResourceType(XineramaDeleteResource) |
|
XRT_WINDOW |= XRC_DRAWABLE;
|
||||||
XRC_DRAWABLE;
|
XRT_PIXMAP = CreateNewResourceType(XineramaDeleteResource);
|
||||||
|
if (XRT_PIXMAP)
|
||||||
|
XRT_PIXMAP |= XRC_DRAWABLE;
|
||||||
XRT_GC = CreateNewResourceType(XineramaDeleteResource);
|
XRT_GC = CreateNewResourceType(XineramaDeleteResource);
|
||||||
XRT_COLORMAP = CreateNewResourceType(XineramaDeleteResource);
|
XRT_COLORMAP = CreateNewResourceType(XineramaDeleteResource);
|
||||||
|
|
||||||
panoramiXGeneration = serverGeneration;
|
if (XRT_WINDOW && XRT_PIXMAP && XRT_GC && XRT_COLORMAP) {
|
||||||
success = TRUE;
|
panoramiXGeneration = serverGeneration;
|
||||||
|
success = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
|
|
|
@ -2113,8 +2113,12 @@ SyncExtensionInit(void)
|
||||||
RTCounter = CreateNewResourceType(FreeCounter);
|
RTCounter = CreateNewResourceType(FreeCounter);
|
||||||
}
|
}
|
||||||
RTAlarm = CreateNewResourceType(FreeAlarm);
|
RTAlarm = CreateNewResourceType(FreeAlarm);
|
||||||
RTAwait = CreateNewResourceType(FreeAwait)|RC_NEVERRETAIN;
|
RTAwait = CreateNewResourceType(FreeAwait);
|
||||||
RTAlarmClient = CreateNewResourceType(FreeAlarmClient)|RC_NEVERRETAIN;
|
if (RTAwait)
|
||||||
|
RTAwait |= RC_NEVERRETAIN;
|
||||||
|
RTAlarmClient = CreateNewResourceType(FreeAlarmClient);
|
||||||
|
if (RTAlarmClient)
|
||||||
|
RTAlarmClient |= RC_NEVERRETAIN;
|
||||||
|
|
||||||
if (RTCounter == 0 || RTAwait == 0 || RTAlarm == 0 ||
|
if (RTCounter == 0 || RTAwait == 0 || RTAlarm == 0 ||
|
||||||
RTAlarmClient == 0 ||
|
RTAlarmClient == 0 ||
|
||||||
|
|
|
@ -1865,8 +1865,8 @@ void XineramifyXv(void)
|
||||||
|
|
||||||
XvXRTPort = CreateNewResourceType(XineramaDeleteResource);
|
XvXRTPort = CreateNewResourceType(XineramaDeleteResource);
|
||||||
|
|
||||||
if(!xvsp0) return;
|
if (!xvsp0 || !XvXRTPort) return;
|
||||||
|
|
||||||
for(i = 0; i < xvsp0->nAdaptors; i++) {
|
for(i = 0; i < xvsp0->nAdaptors; i++) {
|
||||||
refAdapt = xvsp0->pAdaptors + i;
|
refAdapt = xvsp0->pAdaptors + i;
|
||||||
|
|
||||||
|
|
|
@ -1270,6 +1270,8 @@ XInputExtensionInit(void)
|
||||||
XIVersion = thisversion;
|
XIVersion = thisversion;
|
||||||
MakeDeviceTypeAtoms();
|
MakeDeviceTypeAtoms();
|
||||||
RT_INPUTCLIENT = CreateNewResourceType((DeleteType) InputClientGone);
|
RT_INPUTCLIENT = CreateNewResourceType((DeleteType) InputClientGone);
|
||||||
|
if (!RT_INPUTCLIENT)
|
||||||
|
FatalError("Failed to add resource type for XI.\n");
|
||||||
RegisterResourceName(RT_INPUTCLIENT, "INPUTCLIENT");
|
RegisterResourceName(RT_INPUTCLIENT, "INPUTCLIENT");
|
||||||
FixExtensionEvents(extEntry);
|
FixExtensionEvents(extEntry);
|
||||||
ReplySwapVector[IReqCode] = (ReplySwapPtr) SReplyIDispatch;
|
ReplySwapVector[IReqCode] = (ReplySwapPtr) SReplyIDispatch;
|
||||||
|
|
|
@ -1573,9 +1573,16 @@ DbeExtensionInit(void)
|
||||||
|
|
||||||
/* Create the resource types. */
|
/* Create the resource types. */
|
||||||
dbeDrawableResType =
|
dbeDrawableResType =
|
||||||
CreateNewResourceType(DbeDrawableDelete) | RC_DRAWABLE;
|
CreateNewResourceType(DbeDrawableDelete);
|
||||||
|
if (!dbeDrawableResType)
|
||||||
|
return;
|
||||||
|
dbeDrawableResType |= RC_DRAWABLE;
|
||||||
|
|
||||||
dbeWindowPrivResType =
|
dbeWindowPrivResType =
|
||||||
CreateNewResourceType(DbeWindowPrivDelete);
|
CreateNewResourceType(DbeWindowPrivDelete);
|
||||||
|
if (!dbeWindowPrivResType)
|
||||||
|
return;
|
||||||
|
|
||||||
if (!dixRegisterPrivateOffset(dbeDrawableResType,
|
if (!dixRegisterPrivateOffset(dbeDrawableResType,
|
||||||
offsetof(PixmapRec, devPrivates)))
|
offsetof(PixmapRec, devPrivates)))
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -347,6 +347,9 @@ void GlxExtensionInit(void)
|
||||||
__glXDrawableRes = CreateNewResourceType((DeleteType)DrawableGone);
|
__glXDrawableRes = CreateNewResourceType((DeleteType)DrawableGone);
|
||||||
__glXSwapBarrierRes = CreateNewResourceType((DeleteType)SwapBarrierGone);
|
__glXSwapBarrierRes = CreateNewResourceType((DeleteType)SwapBarrierGone);
|
||||||
|
|
||||||
|
if (!__glXContextRes || !__glXDrawableRes || !__glXSwapBarrierRes)
|
||||||
|
return;
|
||||||
|
|
||||||
RegisterResourceName(__glXContextRes, "GLXContext");
|
RegisterResourceName(__glXContextRes, "GLXContext");
|
||||||
RegisterResourceName(__glXDrawableRes, "GLXDrawable");
|
RegisterResourceName(__glXDrawableRes, "GLXDrawable");
|
||||||
RegisterResourceName(__glXSwapBarrierRes, "GLXSwapBarrier");
|
RegisterResourceName(__glXSwapBarrierRes, "GLXSwapBarrier");
|
||||||
|
|
|
@ -299,6 +299,10 @@ void GlxExtensionInit(void)
|
||||||
__glXWindowRes = CreateNewResourceType((DeleteType)WindowGone);
|
__glXWindowRes = CreateNewResourceType((DeleteType)WindowGone);
|
||||||
__glXPbufferRes = CreateNewResourceType((DeleteType)PbufferGone);
|
__glXPbufferRes = CreateNewResourceType((DeleteType)PbufferGone);
|
||||||
|
|
||||||
|
if (!__glXContextRes || !__glXClientRes || !__glXPixmapRes ||
|
||||||
|
!__glXWindowRes || !__glXPbufferRes)
|
||||||
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Add extension to server extensions.
|
** Add extension to server extensions.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -141,6 +141,10 @@ ephyrDRIExtensionInit (ScreenPtr a_screen)
|
||||||
|
|
||||||
#ifdef XF86DRI_EVENTS
|
#ifdef XF86DRI_EVENTS
|
||||||
EventType = CreateNewResourceType (XF86DRIFreeEvents);
|
EventType = CreateNewResourceType (XF86DRIFreeEvents);
|
||||||
|
if (!EventType) {
|
||||||
|
EPHYR_LOG_ERROR ("failed to register DRI event resource type\n") ;
|
||||||
|
goto out ;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((extEntry = AddExtension(XF86DRINAME,
|
if ((extEntry = AddExtension(XF86DRINAME,
|
||||||
|
|
|
@ -792,6 +792,9 @@ DRIExtensionInit(void)
|
||||||
DRIDrawablePrivResType = CreateNewResourceType(DRIDrawablePrivDelete);
|
DRIDrawablePrivResType = CreateNewResourceType(DRIDrawablePrivDelete);
|
||||||
DRIContextPrivResType = CreateNewResourceType(DRIContextPrivDelete);
|
DRIContextPrivResType = CreateNewResourceType(DRIContextPrivDelete);
|
||||||
|
|
||||||
|
if (!DRIDrawablePrivResType || !DRIContextPrivResType)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
RegisterBlockAndWakeupHandlers(DRIBlockHandler, DRIWakeupHandler, NULL);
|
RegisterBlockAndWakeupHandlers(DRIBlockHandler, DRIWakeupHandler, NULL);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -416,6 +416,11 @@ static int DRI2DrawableGone(pointer p, XID id)
|
||||||
static void
|
static void
|
||||||
DRI2ExtensionInit(void)
|
DRI2ExtensionInit(void)
|
||||||
{
|
{
|
||||||
|
dri2DrawableRes = CreateNewResourceType(DRI2DrawableGone);
|
||||||
|
|
||||||
|
if (!dri2DrawableRes)
|
||||||
|
return;
|
||||||
|
|
||||||
dri2Extension = AddExtension(DRI2_NAME,
|
dri2Extension = AddExtension(DRI2_NAME,
|
||||||
DRI2NumberEvents,
|
DRI2NumberEvents,
|
||||||
DRI2NumberErrors,
|
DRI2NumberErrors,
|
||||||
|
@ -424,7 +429,6 @@ DRI2ExtensionInit(void)
|
||||||
NULL,
|
NULL,
|
||||||
StandardMinorOpcode);
|
StandardMinorOpcode);
|
||||||
|
|
||||||
dri2DrawableRes = CreateNewResourceType(DRI2DrawableGone);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern Bool noDRI2Extension;
|
extern Bool noDRI2Extension;
|
||||||
|
|
|
@ -279,7 +279,7 @@ DRIExtensionInit(void)
|
||||||
{
|
{
|
||||||
DRIDrawablePrivResType = CreateNewResourceType(DRIDrawablePrivDelete);
|
DRIDrawablePrivResType = CreateNewResourceType(DRIDrawablePrivDelete);
|
||||||
|
|
||||||
return TRUE;
|
return (DRIDrawablePrivResType != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -1095,6 +1095,6 @@ XFixesCursorInit (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return CursorClientType && CursorWindowType;
|
return CursorClientType && CursorHideCountType && CursorWindowType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,8 @@ Bool
|
||||||
XFixesRegionInit (void)
|
XFixesRegionInit (void)
|
||||||
{
|
{
|
||||||
RegionResType = CreateNewResourceType(RegionResFree);
|
RegionResType = CreateNewResourceType(RegionResFree);
|
||||||
return TRUE;
|
|
||||||
|
return (RegionResType != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -6704,6 +6704,10 @@ XkbExtensionInit(void)
|
||||||
{
|
{
|
||||||
ExtensionEntry *extEntry;
|
ExtensionEntry *extEntry;
|
||||||
|
|
||||||
|
RT_XKBCLIENT = CreateNewResourceType(XkbClientGone);
|
||||||
|
if (!RT_XKBCLIENT)
|
||||||
|
return;
|
||||||
|
|
||||||
if ((extEntry = AddExtension(XkbName, XkbNumberEvents, XkbNumberErrors,
|
if ((extEntry = AddExtension(XkbName, XkbNumberEvents, XkbNumberErrors,
|
||||||
ProcXkbDispatch, SProcXkbDispatch,
|
ProcXkbDispatch, SProcXkbDispatch,
|
||||||
NULL, StandardMinorOpcode))) {
|
NULL, StandardMinorOpcode))) {
|
||||||
|
@ -6711,7 +6715,6 @@ XkbExtensionInit(void)
|
||||||
XkbEventBase = (unsigned char)extEntry->eventBase;
|
XkbEventBase = (unsigned char)extEntry->eventBase;
|
||||||
XkbErrorBase = (unsigned char)extEntry->errorBase;
|
XkbErrorBase = (unsigned char)extEntry->errorBase;
|
||||||
XkbKeyboardErrorCode = XkbErrorBase+XkbKeyboard;
|
XkbKeyboardErrorCode = XkbErrorBase+XkbKeyboard;
|
||||||
RT_XKBCLIENT = CreateNewResourceType(XkbClientGone);
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue