diff options
author | Eamon Walsh <ewalsh@tycho.nsa.gov> | 2007-11-05 19:08:36 -0500 |
---|---|---|
committer | Eamon Walsh <ewalsh@moss-charon.epoch.ncsc.mil> | 2007-11-05 19:08:36 -0500 |
commit | a52c9b2a59f27266557ff9d5d2c08492e04135a6 (patch) | |
tree | 705f11c54e8a31a07dde9ab6835032e2849e132b | |
parent | c7e18beb3c87eb1ada9b21c4ffacd11c1939c087 (diff) | |
parent | 58332894c061ae96d6a457f65266660f5f65e88b (diff) |
Merge branch 'master' into XACE-SELINUX
Conflicts:
dix/dispatch.c
dix/property.c
hw/xfree86/common/xf86VidMode.c
include/xkbsrv.h
render/glyph.c
xkb/xkbActions.c
270 files changed, 1593 insertions, 1827 deletions
diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c index 992ddbce5..21f3206c3 100644 --- a/GL/glx/glxcmds.c +++ b/GL/glx/glxcmds.c @@ -190,7 +190,6 @@ DoCreateContext(__GLXclientState *cl, GLXContextID gcId, __GLXscreen *pGlxScreen, GLboolean isDirect) { ClientPtr client = cl->client; - VisualPtr pVisual; __GLXcontext *glxc, *shareglxc; LEGAL_NEW_RESOURCE(gcId, client); @@ -248,9 +247,7 @@ DoCreateContext(__GLXclientState *cl, GLXContextID gcId, ** Initially, setup the part of the context that could be used by ** a GL core that needs windowing information (e.g., Mesa). */ - glxc->pScreen = pGlxScreen->pScreen; glxc->pGlxScreen = pGlxScreen; - glxc->pVisual = pVisual; glxc->modes = config; /* @@ -499,7 +496,7 @@ __glXGetDrawable(__GLXcontext *glxc, GLXDrawable drawId, ClientPtr client, * a GLX drawable for it. Check that the drawable screen matches * the context screen and that the context fbconfig is compatible * with the window visual. */ - if (pDraw->pScreen != glxc->pScreen || + if (pDraw->pScreen != glxc->pGlxScreen->pScreen || !validGlxFBConfigForWindow(client, glxc->modes, pDraw, error)) return NULL; @@ -1255,7 +1252,7 @@ DoCreatePbuffer(ClientPtr client, int screenNum, XID fbconfigId, __glXenterServer(GL_FALSE); pPixmap = (*pGlxScreen->pScreen->CreatePixmap) (pGlxScreen->pScreen, - width, height, config->rgbBits); + width, height, config->rgbBits, 0); __glXleaveServer(GL_FALSE); return DoCreateGLXDrawable(client, pGlxScreen, config, &pPixmap->drawable, @@ -1470,9 +1467,9 @@ DoQueryContext(__GLXclientState *cl, GLXContextID gcId) *pSendBuf++ = GLX_SHARE_CONTEXT_EXT; *pSendBuf++ = (int)(ctx->share_id); *pSendBuf++ = GLX_VISUAL_ID_EXT; - *pSendBuf++ = (int)(ctx->pVisual->vid); + *pSendBuf++ = (int)(ctx->modes->visualID); *pSendBuf++ = GLX_SCREEN_EXT; - *pSendBuf++ = (int)(ctx->pScreen->myNum); + *pSendBuf++ = (int)(ctx->pGlxScreen->pScreen->myNum); if (client->swapped) { __glXSwapQueryContextInfoEXTReply(client, &reply, sendBuf); diff --git a/GL/glx/glxcontext.h b/GL/glx/glxcontext.h index 712264729..4c36801c1 100644 --- a/GL/glx/glxcontext.h +++ b/GL/glx/glxcontext.h @@ -85,15 +85,9 @@ struct __GLXcontext { ** Pointer to screen info data for this context. This is set ** when the context is created. */ - ScreenPtr pScreen; __GLXscreen *pGlxScreen; /* - ** This context is created with respect to this visual. - */ - VisualRec *pVisual; - - /* ** The XID of this context. */ XID id; @@ -104,11 +98,6 @@ struct __GLXcontext { XID share_id; /* - ** Visual id. - */ - VisualID vid; - - /* ** screen number. */ GLint screen; @@ -129,11 +118,6 @@ struct __GLXcontext { GLboolean isDirect; /* - ** Window pending state - */ - GLuint pendingState; - - /* ** This flag keeps track of whether there are unflushed GL commands. */ GLboolean hasUnflushedCommands; diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c index 3688d50a8..c0da07b68 100644 --- a/GL/glx/glxdri.c +++ b/GL/glx/glxdri.c @@ -185,10 +185,14 @@ __glXDRIdrawableDestroy(__GLXdrawable *drawable) (*private->driDrawable.destroyDrawable)(&private->driDrawable); - __glXenterServer(GL_FALSE); - DRIDestroyDrawable(drawable->pDraw->pScreen, - serverClient, drawable->pDraw); - __glXleaveServer(GL_FALSE); + /* If the X window was destroyed, the dri DestroyWindow hook will + * aready have taken care of this, so only call if pDraw isn't NULL. */ + if (drawable->pDraw != NULL) { + __glXenterServer(GL_FALSE); + DRIDestroyDrawable(drawable->pDraw->pScreen, + serverClient, drawable->pDraw); + __glXleaveServer(GL_FALSE); + } xfree(private); } @@ -249,7 +253,7 @@ __glXDRIcontextDestroy(__GLXcontext *baseContext) context->driContext.destroyContext(&context->driContext); __glXenterServer(GL_FALSE); - retval = DRIDestroyContext(baseContext->pScreen, context->hwContextID); + retval = DRIDestroyContext(baseContext->pGlxScreen->pScreen, context->hwContextID); __glXleaveServer(GL_FALSE); __glXContextDestroy(&context->base); @@ -583,7 +587,6 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen, context->base.loseCurrent = __glXDRIcontextLoseCurrent; context->base.copy = __glXDRIcontextCopy; context->base.forceCurrent = __glXDRIcontextForceCurrent; - context->base.pScreen = screen->base.pScreen; context->base.textureFromPixmap = &__glXDRItextureFromPixmap; /* Find the requested X visual */ @@ -668,11 +671,16 @@ getDrawableInfo(__DRIdrawable *driDrawable, { __GLXDRIdrawable *drawable = containerOf(driDrawable, __GLXDRIdrawable, driDrawable); - ScreenPtr pScreen = drawable->base.pDraw->pScreen; + ScreenPtr pScreen; drm_clip_rect_t *pClipRects, *pBackClipRects; GLboolean retval; size_t size; + /* If the X window has been destroyed, give up here. */ + if (drawable->base.pDraw == NULL) + return GL_FALSE; + + pScreen = drawable->base.pDraw->pScreen; __glXenterServer(GL_FALSE); retval = DRIGetDrawableInfo(pScreen, drawable->base.pDraw, index, stamp, x, y, width, height, diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c index 60dc090ac..85d8debd4 100644 --- a/GL/glx/glxext.c +++ b/GL/glx/glxext.c @@ -107,22 +107,8 @@ static int ContextGone(__GLXcontext* cx, XID id) */ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) { - __GLXcontext *cx, *cx1; - - /* - ** When a drawable is destroyed, notify all context bound to - ** it, that there are no longer bound to anything. - */ - for (cx = glxPriv->drawGlxc; cx; cx = cx1) { - cx1 = cx->nextDrawPriv; - cx->pendingState |= __GLX_PENDING_DESTROY; - } - - for (cx = glxPriv->readGlxc; cx; cx = cx1) { - cx1 = cx->nextReadPriv; - cx->pendingState |= __GLX_PENDING_DESTROY; - } - + glxPriv->pDraw = NULL; + glxPriv->drawId = 0; __glXUnrefDrawable(glxPriv); return True; diff --git a/GL/glx/glxglcore.c b/GL/glx/glxglcore.c index 6aa4e7f5c..0750e1282 100644 --- a/GL/glx/glxglcore.c +++ b/GL/glx/glxglcore.c @@ -265,7 +265,7 @@ __glXMesaScreenDestroy(__GLXscreen *screen) int i; if (mesaScreen->xm_vis) { - for (i = 0; i < mesaScreen->num_vis; i++) { + for (i = 0; i < mesaScreen->base.numFBConfigs; i++) { if (mesaScreen->xm_vis[i]) XMesaDestroyVisual(mesaScreen->xm_vis[i]); } @@ -363,7 +363,7 @@ createMesaVisuals(__GLXMESAscreen *pMesaScreen) { __GLcontextModes *config; ScreenPtr pScreen; - VisualPtr visual; + VisualPtr visual = NULL; int i, j; i = 0; diff --git a/GL/glx/glxscreens.c b/GL/glx/glxscreens.c index 2dc9d2f10..bf090662a 100644 --- a/GL/glx/glxscreens.c +++ b/GL/glx/glxscreens.c @@ -190,7 +190,6 @@ static char GLXServerExtensions[] = static Bool glxPositionWindow(WindowPtr pWin, int x, int y) { ScreenPtr pScreen; - __GLXcontext *glxc; __GLXdrawable *glxPriv; Bool ret; __GLXscreen *pGlxScreen; @@ -227,16 +226,6 @@ static Bool glxPositionWindow(WindowPtr pWin, int x, int y) ret = False; } - /* mark contexts as needing resize */ - - for (glxc = glxPriv->drawGlxc; glxc; glxc = glxc->nextDrawPriv) { - glxc->pendingState |= __GLX_PENDING_RESIZE; - } - - for (glxc = glxPriv->readGlxc; glxc; glxc = glxc->nextReadPriv) { - glxc->pendingState |= __GLX_PENDING_RESIZE; - } - return ret; } @@ -408,38 +397,61 @@ initGlxVisual(VisualPtr visual, __GLcontextModes *config) visual->offsetBlue = findFirstSet(config->blueMask); } -static void -addMinimalSet(__GLXscreen *pGlxScreen) +typedef struct { + GLboolean doubleBuffer; + GLboolean depthBuffer; +} FBConfigTemplateRec, *FBConfigTemplatePtr; + +static __GLcontextModes * +pickFBConfig(__GLXscreen *pGlxScreen, FBConfigTemplatePtr template, int class) { __GLcontextModes *config; - VisualPtr visuals; - int depth; for (config = pGlxScreen->fbconfigs; config != NULL; config = config->next) { if (config->visualRating != GLX_NONE) continue; - if (config->doubleBufferMode && config->depthBits > 0) - break; + if (_gl_convert_to_x_visual_type(config->visualType) != class) + continue; + if ((config->doubleBufferMode > 0) != template->doubleBuffer) + continue; + if ((config->depthBits > 0) != template->depthBuffer) + continue; + + return config; } - if (config == NULL) - config = pGlxScreen->fbconfigs; - pGlxScreen->visuals = xcalloc(1, sizeof (__GLcontextModes *)); + return NULL; +} + +static void +addMinimalSet(__GLXscreen *pGlxScreen) +{ + __GLcontextModes *config; + VisualPtr visuals; + int i; + FBConfigTemplateRec best = { GL_TRUE, GL_TRUE }; + FBConfigTemplateRec minimal = { GL_FALSE, GL_FALSE }; + + pGlxScreen->visuals = xcalloc(pGlxScreen->pScreen->numVisuals, + sizeof (__GLcontextModes *)); if (pGlxScreen->visuals == NULL) { ErrorF("Failed to allocate for minimal set of GLX visuals\n"); return; } - depth = config->redBits + config->greenBits + config->blueBits; - visuals = AddScreenVisuals(pGlxScreen->pScreen, 1, depth); - if (visuals == NULL) { - xfree(pGlxScreen->visuals); - return; + pGlxScreen->numVisuals = pGlxScreen->pScreen->numVisuals; + visuals = pGlxScreen->pScreen->visuals; + for (i = 0; i < pGlxScreen->numVisuals; i++) { + if (visuals[i].nplanes == 32) + config = pickFBConfig(pGlxScreen, &minimal, visuals[i].class); + else + config = pickFBConfig(pGlxScreen, &best, visuals[i].class); + if (config == NULL) + config = pGlxScreen->fbconfigs; + pGlxScreen->visuals[i] = config; + config->visualID = visuals[i].vid; } - pGlxScreen->numVisuals = 1; - pGlxScreen->visuals[0] = config; - initGlxVisual(&visuals[0], config); } static void @@ -505,8 +517,6 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) for (m = pGlxScreen->fbconfigs; m != NULL; m = m->next) { m->fbconfigID = FakeClientID(0); m->visualID = findVisualForConfig(pScreen, m); - ErrorF("mapping fbconfig id 0x%02lx to visual id 0x%02lx\n", - m->fbconfigID, m->visualID); i++; } pGlxScreen->numFBConfigs = i; diff --git a/XTrap/xtrapdi.c b/XTrap/xtrapdi.c index 734922ceb..15a38eafc 100644 --- a/XTrap/xtrapdi.c +++ b/XTrap/xtrapdi.c @@ -2066,7 +2066,7 @@ static void GetSendColorCellsRep(ClientPtr client, xResourceReq *req) } nmasks = creq->planes; length = ((long)npixels + (long)nmasks) * sizeof(Pixel); - data = (XETrapDatum *)ALLOCATE_LOCAL(sizeof(XETrapDatum)+length); + data = (XETrapDatum *)xalloc(sizeof(XETrapDatum)+length); if (!data) { SendErrorToClient(penv->client, XETrap_avail.data.major_opcode, @@ -2084,7 +2084,7 @@ static void GetSendColorCellsRep(ClientPtr client, xResourceReq *req) { SendErrorToClient(penv->client, XETrap_avail.data.major_opcode, req->reqType, 0L, retval); - DEALLOCATE_LOCAL(data); + xfree(data); return; } crep = (xAllocColorCellsReply *)&(data->u.reply); @@ -2109,7 +2109,7 @@ static void GetSendColorCellsRep(ClientPtr client, xResourceReq *req) SendErrorToClient(penv->client, XETrap_avail.data.major_opcode, req->reqType, 0L, XETrapErrorBase + BadIO); } - DEALLOCATE_LOCAL(data); + xfree(data); } static void GetSendColorPlanesRep(ClientPtr client, xResourceReq *req) { /* adapted from ProcAllocColorPlanes() in dispatch.c */ @@ -2137,7 +2137,7 @@ static void GetSendColorPlanesRep(ClientPtr client, xResourceReq *req) return; } length = (long)npixels * sizeof(Pixel); - data = (XETrapDatum *)ALLOCATE_LOCAL(sizeof(XETrapDatum)+length); + data = (XETrapDatum *)xalloc(sizeof(XETrapDatum)+length); if (!data) { SendErrorToClient(penv->client, XETrap_avail.data.major_opcode, @@ -2157,7 +2157,7 @@ static void GetSendColorPlanesRep(ClientPtr client, xResourceReq *req) { SendErrorToClient(penv->client, XETrap_avail.data.major_opcode, req->reqType, 0L, retval); - DEALLOCATE_LOCAL(data); + xfree(data); return; } crep->nPixels = npixels; @@ -2182,6 +2182,6 @@ static void GetSendColorPlanesRep(ClientPtr client, xResourceReq *req) SendErrorToClient(penv->client, XETrap_avail.data.major_opcode, req->reqType, 0L, XETrapErrorBase + BadIO); } - DEALLOCATE_LOCAL(data); + xfree(data); } #endif /* COLOR_REPLIES */ diff --git a/Xext/mbuf.c b/Xext/mbuf.c index 701af66a4..ba99f3fbc 100644 --- a/Xext/mbuf.c +++ b/Xext/mbuf.c @@ -436,7 +436,7 @@ CreateImageBuffers (pWin, nbuf, ids, action, hint) pMultibuffer->pMultibuffers = pMultibuffers; if (!AddResource (ids[i], MultibufferResType, (pointer) pMultibuffer)) break; - pMultibuffer->pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, depth); + pMultibuffer->pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, depth, 0); if (!pMultibuffer->pPixmap) break; if (!AddResource (ids[i], MultibufferDrawableResType, (pointer) pMultibuffer->pPixmap)) @@ -557,12 +557,12 @@ ProcDisplayImageBuffers (client) return Success; minDelay = stuff->minDelay; ids = (XID *) &stuff[1]; - ppMultibuffers = (MultibuffersPtr *) ALLOCATE_LOCAL(nbuf * sizeof (MultibuffersPtr)); - pMultibuffer = (MultibufferPtr *) ALLOCATE_LOCAL(nbuf * sizeof (MultibufferPtr)); + ppMultibuffers = (MultibuffersPtr *) xalloc(nbuf * sizeof (MultibuffersPtr)); + pMultibuffer = (MultibufferPtr *) xalloc(nbuf * sizeof (MultibufferPtr)); if (!ppMultibuffers || !pMultibuffer) { - if (ppMultibuffers) DEALLOCATE_LOCAL(ppMultibuffers); - if (pMultibuffer) DEALLOCATE_LOCAL(pMultibuffer); + if (ppMultibuffers) xfree(ppMultibuffers); + if (pMultibuffer) xfree(pMultibuffer); client->errorValue = 0; return BadAlloc; } @@ -574,8 +574,8 @@ ProcDisplayImageBuffers (client) MultibufferResType); if (!pMultibuffer[i]) { - DEALLOCATE_LOCAL(ppMultibuffers); - DEALLOCATE_LOCAL(pMultibuffer); + xfree(ppMultibuffers); + xfree(pMultibuffer); client->errorValue = ids[i]; return MultibufferErrorBase + MultibufferBadBuffer; } @@ -584,8 +584,8 @@ MultibufferResType); { if (ppMultibuffers[i] == ppMultibuffers[j]) { - DEALLOCATE_LOCAL(ppMultibuffers); - DEALLOCATE_LOCAL(pMultibuffer); + xfree(ppMultibuffers); + xfree(pMultibuffer); client->errorValue = ids[i]; return BadMatch; } @@ -604,8 +604,8 @@ MultibufferResType); else PerformDisplayRequest (ppMultibuffers, pMultibuffer, nbuf); - DEALLOCATE_LOCAL(ppMultibuffers); - DEALLOCATE_LOCAL(pMultibuffer); + xfree(ppMultibuffers); + xfree(pMultibuffer); return Success; } @@ -698,7 +698,7 @@ ProcGetMBufferAttributes (client) pMultibuffers = (MultibuffersPtr)LookupIDByType (pWin->drawable.id, MultibuffersResType); if (!pMultibuffers) return BadAccess; - ids = (XID *) ALLOCATE_LOCAL (pMultibuffers->numMultibuffer * sizeof (XID)); + ids = (XID *) xalloc (pMultibuffers->numMultibuffer * sizeof (XID)); if (!ids) return BadAlloc; for (i = 0; i < pMultibuffers->numMultibuffer; i++) @@ -721,7 +721,7 @@ ProcGetMBufferAttributes (client) (char *)&rep); WriteToClient (client, (int)(pMultibuffers->numMultibuffer * sizeof (XID)), (char *)ids); - DEALLOCATE_LOCAL((pointer) ids); + xfree((pointer) ids); return client->noClientException; } @@ -836,7 +836,7 @@ ProcGetBufferInfo (client) nInfo += pDepth->numVids; } pInfo = (xMbufBufferInfo *) - ALLOCATE_LOCAL (nInfo * sizeof (xMbufBufferInfo)); + xalloc (nInfo * sizeof (xMbufBufferInfo)); if (!pInfo) return BadAlloc; @@ -872,7 +872,7 @@ ProcGetBufferInfo (client) } WriteToClient (client, sizeof (xMbufGetBufferInfoReply), (pointer) &rep); WriteToClient (client, (int) nInfo * sizeof (xMbufBufferInfo), (pointer) pInfo); - DEALLOCATE_LOCAL ((pointer) pInfo); + xfree ((pointer) pInfo); return client->noClientException; } @@ -1289,7 +1289,7 @@ DisplayImageBuffers (ids, nbuf) MultibuffersPtr *pMultibuffers; int i, j; - pMultibuffer = (MultibufferPtr *) ALLOCATE_LOCAL (nbuf * sizeof *pMultibuffer + + pMultibuffer = (MultibufferPtr *) xalloc (nbuf * sizeof *pMultibuffer + nbuf * sizeof *pMultibuffers); if (!pMultibuffer) return BadAlloc; @@ -1299,19 +1299,19 @@ DisplayImageBuffers (ids, nbuf) pMultibuffer[i] = (MultibufferPtr) LookupIDByType (ids[i], MultibufferResType); if (!pMultibuffer[i]) { - DEALLOCATE_LOCAL (pMultibuffer); + xfree (pMultibuffer); return MultibufferErrorBase + MultibufferBadBuffer; } pMultibuffers[i] = pMultibuffer[i]->pMultibuffers; for (j = 0; j < i; j++) if (pMultibuffers[i] == pMultibuffers[j]) { - DEALLOCATE_LOCAL (pMultibuffer); + xfree (pMultibuffer); return BadMatch; } } PerformDisplayRequest (pMultibuffers, pMultibuffer, nbuf); - DEALLOCATE_LOCAL (pMultibuffer); + xfree (pMultibuffer); return Success; } @@ -1415,7 +1415,7 @@ MultibufferExpose (pMultibuffer, pRegion) numRects = REGION_NUM_RECTS(pRegion); pBox = REGION_RECTS(pRegion); - pEvent = (xEvent *) ALLOCATE_LOCAL(numRects * sizeof(xEvent)); + pEvent = (xEvent *) xalloc(numRects * sizeof(xEvent)); if (pEvent) { pe = pEvent; @@ -1431,7 +1431,7 @@ MultibufferExpose (pMultibuffer, pRegion) } (void) DeliverEventsToMultibuffer (pMultibuffer, pEvent, numRects, ExposureMask); - DEALLOCATE_LOCAL(pEvent); + xfree(pEvent); } } } @@ -1609,7 +1609,8 @@ MultibufferPositionWindow (pWin, x, y) { pMultibuffer = &pMultibuffers->buffers[i]; pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, - pWin->drawable.depth); + pWin->drawable.depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) { DestroyImageBuffers (pWin); diff --git a/Xext/mbufbf.c b/Xext/mbufbf.c index b879abcb0..a3b3de79d 100644 --- a/Xext/mbufbf.c +++ b/Xext/mbufbf.c @@ -614,7 +614,7 @@ bufDrawSelectPlane(pScreen, selectPlane, prgn, bufferNum) if (!pGC) return; - prect = (xRectangle *)ALLOCATE_LOCAL(REGION_NUM_RECTS(prgn) * + prect = (xRectangle *)xalloc(REGION_NUM_RECTS(prgn) * sizeof(xRectangle)); if (!prect) { @@ -638,7 +638,7 @@ bufDrawSelectPlane(pScreen, selectPlane, prgn, bufferNum) prect -= numRects; (* pGC->ops->PolyFillRect)(pDrawable, pGC, numRects, prect); - DEALLOCATE_LOCAL(prect); + xfree(prect); FreeScratchGC (pGC); } diff --git a/Xext/mbufpx.c b/Xext/mbufpx.c index 16717d330..21d525906 100644 --- a/Xext/mbufpx.c +++ b/Xext/mbufpx.c @@ -155,7 +155,7 @@ pixCreateImageBuffers (pWin, nbuf, ids, action, hint) { pMBBuffer = &pMBWindow->buffers[i]; pMBBuffer->pDrawable = (DrawablePtr) - (*pScreen->CreatePixmap) (pScreen, width, height, depth); + (*pScreen->CreatePixmap) (pScreen, width, height, depth, 0); if (!pMBBuffer->pDrawable) break; @@ -263,7 +263,7 @@ MultibufferPaintBackgroundRegion(pWin, pDrawable, pRegion) int nrects = REGION_NUM_RECTS(pRegion); BoxPtr pbox = REGION_RECTS(pRegion); - pRects = (xRectangle *)ALLOCATE_LOCAL(nrects * sizeof(xRectangle)); + pRects = (xRectangle *)xalloc(nrects * sizeof(xRectangle)); if (pRects) { int i; @@ -275,7 +275,7 @@ MultibufferPaintBackgroundRegion(pWin, pDrawable, pRegion) pRects[i].height = pbox->y2 - pbox->y1; } MultibufferPaintBackgroundRectangles(pWin, pDrawable, nrects, pRects); - DEALLOCATE_LOCAL(pRects); + xfree(pRects); } } @@ -542,7 +542,8 @@ pixPositionWindow (pWin, x, y) for (i = 0; i < pMBWindow->numMultibuffer; i++) { pMBBuffer = &pMBWindow->buffers[i]; - pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, pWin->drawable.depth); + pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, pWin->drawable.depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) { (* MB_SCREEN_PRIV(pScreen)->DestroyImageBuffers)(pWin); diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c index 5933c02bc..402662f9e 100644 --- a/Xext/panoramiXprocs.c +++ b/Xext/panoramiXprocs.c @@ -1272,7 +1272,7 @@ int PanoramiXPolyPoint(ClientPtr client) isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; npoint = ((client->req_len << 2) - sizeof(xPolyPointReq)) >> 2; if (npoint > 0) { - origPts = (xPoint *) ALLOCATE_LOCAL(npoint * sizeof(xPoint)); + origPts = (xPoint *) xalloc(npoint * sizeof(xPoint)); memcpy((char *) origPts, (char *) &stuff[1], npoint * sizeof(xPoint)); FOR_NSCREENS_FORWARD(j){ @@ -1299,7 +1299,7 @@ int PanoramiXPolyPoint(ClientPtr client) result = (* SavedProcVector[X_PolyPoint])(client); if(result != Success) break; } - DEALLOCATE_LOCAL(origPts); + xfree(origPts); return (result); } else return (client->noClientException); @@ -1330,7 +1330,7 @@ int PanoramiXPolyLine(ClientPtr client) isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; npoint = ((client->req_len << 2) - sizeof(xPolyLineReq)) >> 2; if (npoint > 0){ - origPts = (xPoint *) ALLOCATE_LOCAL(npoint * sizeof(xPoint)); + origPts = (xPoint *) xalloc(npoint * sizeof(xPoint)); memcpy((char *) origPts, (char *) &stuff[1], npoint * sizeof(xPoint)); FOR_NSCREENS_FORWARD(j){ @@ -1357,7 +1357,7 @@ int PanoramiXPolyLine(ClientPtr client) result = (* SavedProcVector[X_PolyLine])(client); if(result != Success) break; } - DEALLOCATE_LOCAL(origPts); + xfree(origPts); return (result); } else return (client->noClientException); @@ -1391,7 +1391,7 @@ int PanoramiXPolySegment(ClientPtr client) if(nsegs & 4) return BadLength; nsegs >>= 3; if (nsegs > 0) { - origSegs = (xSegment *) ALLOCATE_LOCAL(nsegs * sizeof(xSegment)); + origSegs = (xSegment *) xalloc(nsegs * sizeof(xSegment)); memcpy((char *) origSegs, (char *) &stuff[1], nsegs * sizeof(xSegment)); FOR_NSCREENS_FORWARD(j){ @@ -1418,7 +1418,7 @@ int PanoramiXPolySegment(ClientPtr client) result = (* SavedProcVector[X_PolySegment])(client); if(result != Success) break; } - DEALLOCATE_LOCAL(origSegs); + xfree(origSegs); return (result); } else return (client->noClientException); @@ -1453,7 +1453,7 @@ int PanoramiXPolyRectangle(ClientPtr client) if(nrects & 4) return BadLength; nrects >>= 3; if (nrects > 0){ - origRecs = (xRectangle *) ALLOCATE_LOCAL(nrects * sizeof(xRectangle)); + origRecs = (xRectangle *) xalloc(nrects * sizeof(xRectangle)); memcpy((char *)origRecs,(char *)&stuff[1],nrects * sizeof(xRectangle)); FOR_NSCREENS_FORWARD(j){ @@ -1479,7 +1479,7 @@ int PanoramiXPolyRectangle(ClientPtr client) result = (* SavedProcVector[X_PolyRectangle])(client); if(result != Success) break; } - DEALLOCATE_LOCAL(origRecs); + xfree(origRecs); return (result); } else return (client->noClientException); @@ -1513,7 +1513,7 @@ int PanoramiXPolyArc(ClientPtr client) if(narcs % sizeof(xArc)) return BadLength; narcs /= sizeof(xArc); if (narcs > 0){ - origArcs = (xArc *) ALLOCATE_LOCAL(narcs * sizeof(xArc)); + origArcs = (xArc *) xalloc(narcs * sizeof(xArc)); memcpy((char *) origArcs, (char *) &stuff[1], narcs * sizeof(xArc)); FOR_NSCREENS_FORWARD(j){ @@ -1537,7 +1537,7 @@ int PanoramiXPolyArc(ClientPtr client) result = (* SavedProcVector[X_PolyArc])(client); if(result != Success) break; } - DEALLOCATE_LOCAL(origArcs); + xfree(origArcs); return (result); } else return (client->noClientException); @@ -1569,7 +1569,7 @@ int PanoramiXFillPoly(ClientPtr client) count = ((client->req_len << 2) - sizeof(xFillPolyReq)) >> 2; if (count > 0){ - locPts = (DDXPointPtr) ALLOCATE_LOCAL(count * sizeof(DDXPointRec)); + locPts = (DDXPointPtr) xalloc(count * sizeof(DDXPointRec)); memcpy((char *)locPts, (char *)&stuff[1], count * sizeof(DDXPointRec)); FOR_NSCREENS_FORWARD(j){ @@ -1596,7 +1596,7 @@ int PanoramiXFillPoly(ClientPtr client) result = (* SavedProcVector[X_FillPoly])(client); if(result != Success) break; } - DEALLOCATE_LOCAL(locPts); + xfree(locPts); return (result); } else return (client->noClientException); @@ -1630,7 +1630,7 @@ int PanoramiXPolyFillRectangle(ClientPtr client) if(things & 4) return BadLength; things >>= 3; if (things > 0){ - origRects = (xRectangle *) ALLOCATE_LOCAL(things * sizeof(xRectangle)); + origRects = (xRectangle *) xalloc(things * sizeof(xRectangle)); memcpy((char*)origRects,(char*)&stuff[1], things * sizeof(xRectangle)); FOR_NSCREENS_FORWARD(j){ @@ -1655,7 +1655,7 @@ int PanoramiXPolyFillRectangle(ClientPtr client) result = (* SavedProcVector[X_PolyFillRectangle])(client); if(result != Success) break; } - DEALLOCATE_LOCAL(origRects); + xfree(origRects); return (result); } else return (client->noClientException); @@ -1689,7 +1689,7 @@ int PanoramiXPolyFillArc(ClientPtr client) IF_RETURN((narcs % sizeof(xArc)), BadLength); narcs /= sizeof(xArc); if (narcs > 0) { - origArcs = (xArc *) ALLOCATE_LOCAL(narcs * sizeof(xArc)); + origArcs = (xArc *) xalloc(narcs * sizeof(xArc)); memcpy((char *) origArcs, (char *)&stuff[1], narcs * sizeof(xArc)); FOR_NSCREENS_FORWARD(j){ @@ -1714,7 +1714,7 @@ int PanoramiXPolyFillArc(ClientPtr client) result = (* SavedProcVector[X_PolyFillArc])(client); if(result != Success) break; } - DEALLOCATE_LOCAL(origArcs); + xfree(origArcs); return (result); } else return (client->noClientException); diff --git a/Xext/saver.c b/Xext/saver.c index eff932573..6905fc678 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -687,7 +687,7 @@ CreateSaverWindow (pScreen) wantMap = wColormap (pWin); if (wantMap == None) return TRUE; - installedMaps = (Colormap *) ALLOCATE_LOCAL (pScreen->maxInstalledCmaps * + installedMaps = (Colormap *) xalloc (pScreen->maxInstalledCmaps * sizeof (Colormap)); numInstalled = (*pWin->drawable.pScreen->ListInstalledColormaps) (pScreen, installedMaps); @@ -695,7 +695,7 @@ CreateSaverWindow (pScreen) if (installedMaps[i] == wantMap) break; - DEALLOCATE_LOCAL ((char *) installedMaps); + xfree ((char *) installedMaps); if (i < numInstalled) return TRUE; diff --git a/Xext/shape.c b/Xext/shape.c index 12ab53a05..567737c13 100644 --- a/Xext/shape.c +++ b/Xext/shape.c @@ -1078,7 +1078,7 @@ ProcShapeGetRectangles (client) } if (!region) { nrects = 1; - rects = (xRectangle *) ALLOCATE_LOCAL (sizeof (xRectangle)); + rects = (xRectangle *) xalloc (sizeof (xRectangle)); if (!rects) return BadAlloc; switch (stuff->kind) { @@ -1105,7 +1105,7 @@ ProcShapeGetRectangles (client) BoxPtr box; nrects = REGION_NUM_RECTS(region); box = REGION_RECTS(region); - rects = (xRectangle *) ALLOCATE_LOCAL (nrects * sizeof (xRectangle)); + rects = (xRectangle *) xalloc (nrects * sizeof (xRectangle)); if (!rects && nrects) return BadAlloc; for (i = 0; i < nrects; i++, box++) { @@ -1128,7 +1128,7 @@ ProcShapeGetRectangles (client) } WriteToClient (client, sizeof (rep), (char *) &rep); WriteToClient (client, nrects * sizeof (xRectangle), (char *) rects); - DEALLOCATE_LOCAL (rects); + xfree (rects); return client->noClientException; } diff --git a/Xext/shm.c b/Xext/shm.c index db3c2ec90..dfe759fbe 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -557,7 +557,8 @@ miShmPutImage(dst, pGC, depth, format, w, h, sx, sy, sw, sh, dx, dy, data) putGC = GetScratchGC(depth, dst->pScreen); if (!putGC) return; - pmap = (*dst->pScreen->CreatePixmap)(dst->pScreen, sw, sh, depth); + pmap = (*dst->pScreen->CreatePixmap)(dst->pScreen, sw, sh, depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pmap) { FreeScratchGC(putGC); @@ -1084,7 +1085,7 @@ fbShmCreatePixmap (pScreen, width, height, depth, addr) { register PixmapPtr pPixmap; - pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth); + pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth, 0); if (!pPixmap) return NullPixmap; diff --git a/Xext/sync.c b/Xext/sync.c index 750e0db94..729014721 100644 --- a/Xext/sync.c +++ b/Xext/sync.c @@ -602,7 +602,7 @@ SyncSendCounterNotifyEvents(client, ppAwait, num_events) if (client->clientGone) return; pev = pEvents = (xSyncCounterNotifyEvent *) - ALLOCATE_LOCAL(num_events * sizeof(xSyncCounterNotifyEvent)); + xalloc(num_events * sizeof(xSyncCounterNotifyEvent)); if (!pEvents) return; UpdateCurrentTime(); @@ -623,7 +623,7 @@ SyncSendCounterNotifyEvents(client, ppAwait, num_events) } /* swapping will be taken care of by this */ WriteEventsToClient(client, num_events, (xEvent *)pEvents); - DEALLOCATE_LOCAL(pEvents); + xfree(pEvents); } @@ -733,7 +733,7 @@ SyncAwaitTriggerFired(pTrigger) pAwaitUnion = (SyncAwaitUnion *)pAwait->pHeader; numwaits = pAwaitUnion->header.num_waitconditions; - ppAwait = (SyncAwait **)ALLOCATE_LOCAL(numwaits * sizeof(SyncAwait *)); + ppAwait = (SyncAwait **)xalloc(numwaits * sizeof(SyncAwait *)); if (!ppAwait) goto bail; @@ -802,7 +802,7 @@ SyncAwaitTriggerFired(pTrigger) if (num_events) SyncSendCounterNotifyEvents(pAwaitUnion->header.client, ppAwait, num_events); - DEALLOCATE_LOCAL(ppAwait); + xfree(ppAwait); bail: /* unblock the client */ @@ -1397,7 +1397,7 @@ ProcSyncListSystemCounters(client) if (len) { - walklist = list = (xSyncSystemCounter *) ALLOCATE_LOCAL(len); + walklist = list = (xSyncSystemCounter *) xalloc(len); if (!list) return BadAlloc; } @@ -1443,7 +1443,7 @@ ProcSyncListSystemCounters(client) if (len) { WriteToClient(client, len, (char *) list); - DEALLOCATE_LOCAL(list); + xfree(list); } return (client->noClientException); diff --git a/Xext/xace.c b/Xext/xace.c index 7b27ecd6a..11145d117 100644 --- a/Xext/xace.c +++ b/Xext/xace.c @@ -461,7 +461,7 @@ XaceCensorImage(client, pVisibleRegion, widthBytesLine, pDraw, x, y, w, h, /* convert region to list-of-rectangles for PolyFillRect */ - pRects = (xRectangle *)ALLOCATE_LOCAL(nRects * sizeof(xRectangle *)); + pRects = (xRectangle *)xalloc(nRects * sizeof(xRectangle *)); if (!pRects) { failed = TRUE; @@ -513,7 +513,7 @@ XaceCensorImage(client, pVisibleRegion, widthBytesLine, pDraw, x, y, w, h, */ bzero(pBuf, (int)(widthBytesLine * h)); } - if (pRects) DEALLOCATE_LOCAL(pRects); + if (pRects) xfree(pRects); if (pScratchGC) FreeScratchGC(pScratchGC); if (pPix) FreeScratchPixmapHeader(pPix); } diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c index a8af43d09..e2f589040 100644 --- a/Xext/xf86bigfont.c +++ b/Xext/xf86bigfont.c @@ -483,7 +483,7 @@ ProcXF86BigfontQueryFont( } else { #endif pCI = (xCharInfo *) - ALLOCATE_LOCAL(nCharInfos * sizeof(xCharInfo)); + xalloc(nCharInfos * sizeof(xCharInfo)); if (!pCI) return BadAlloc; #ifdef HAS_SHM @@ -546,9 +546,9 @@ ProcXF86BigfontQueryFont( hashModulus = nCharInfos+1; tmp = (CARD16*) - ALLOCATE_LOCAL((4*nCharInfos+1) * sizeof(CARD16)); + xalloc((4*nCharInfos+1) * sizeof(CARD16)); if (!tmp) { - if (!pDesc) DEALLOCATE_LOCAL(pCI); + if (!pDesc) xfree(pCI); return BadAlloc; } pIndex2UniqIndex = tmp; @@ -631,12 +631,12 @@ ProcXF86BigfontQueryFont( + (nCharInfos+1)/2 * 2 * sizeof(CARD16) : 0); xXF86BigfontQueryFontReply* reply = - (xXF86BigfontQueryFontReply *) ALLOCATE_LOCAL(rlength); + (xXF86BigfontQueryFontReply *) xalloc(rlength); char* p; if (!reply) { if (nCharInfos > 0) { - if (shmid == -1) DEALLOCATE_LOCAL(pIndex2UniqIndex); - if (!pDesc) DEALLOCATE_LOCAL(pCI); + if (shmid == -1) xfree(pIndex2UniqIndex); + if (!pDesc) xfree(pCI); } return BadAlloc; } @@ -714,10 +714,10 @@ ProcXF86BigfontQueryFont( } } WriteToClient(client, rlength, (char *)reply); - DEALLOCATE_LOCAL(reply); + xfree(reply); if (nCharInfos > 0) { - if (shmid == -1) DEALLOCATE_LOCAL(pIndex2UniqIndex); - if (!pDesc) DEALLOCATE_LOCAL(pCI); + if (shmid == -1) xfree(pIndex2UniqIndex); + if (!pDesc) xfree(pCI); } return (client->noClientException); } diff --git a/Xext/xres.c b/Xext/xres.c index e78176e41..281ba20cd 100644 --- a/Xext/xres.c +++ b/Xext/xres.c @@ -65,7 +65,7 @@ ProcXResQueryClients (ClientPtr client) REQUEST_SIZE_MATCH(xXResQueryClientsReq); - current_clients = ALLOCATE_LOCAL((currentMaxClients - 1) * sizeof(int)); + current_clients = xalloc((currentMaxClients - 1) * sizeof(int)); num_clients = 0; for(i = 1; i < currentMaxClients; i++) { @@ -103,7 +103,7 @@ ProcXResQueryClients (ClientPtr client) } } - DEALLOCATE_LOCAL(current_clients); + xfree(current_clients); return (client->noClientException); } @@ -136,7 +136,7 @@ ProcXResQueryClientResources (ClientPtr client) return BadValue; } - counts = ALLOCATE_LOCAL((lastResourceType + 1) * sizeof(int)); + counts = xalloc((lastResourceType + 1) * sizeof(int)); memset(counts, 0, (lastResourceType + 1) * sizeof(int)); @@ -188,7 +188,7 @@ ProcXResQueryClientResources (ClientPtr client) } } - DEALLOCATE_LOCAL(counts); + xfree(counts); return (client->noClientException); } diff --git a/Xi/gtmotion.c b/Xi/gtmotion.c index de22d0484..4f4d7cb77 100644 --- a/Xi/gtmotion.c +++ b/Xi/gtmotion.c @@ -134,7 +134,7 @@ ProcXGetDeviceMotionEvents(ClientPtr client) if (num_events) { size = sizeof(Time) + (axes * sizeof(INT32)); tsize = num_events * size; - coords = (INT32 *) ALLOCATE_LOCAL(tsize); + coords = (INT32 *) xalloc(tsize); if (!coords) return BadAlloc; rep.nEvents = (v->GetMotionProc) (dev, (xTimecoord *) coords, /* XXX */ @@ -160,7 +160,7 @@ ProcXGetDeviceMotionEvents(ClientPtr client) WriteToClient(client, length * 4, (char *)coords); } if (coords) - DEALLOCATE_LOCAL(coords); + xfree(coords); return Success; } @@ -483,7 +483,8 @@ extern PixmapPtr afbCreatePixmap( ScreenPtr /*pScreen*/, int /*width*/, int /*height*/, - int /*depth*/ + int /*depth*/, + unsigned /*usage_hint*/ ); extern Bool afbDestroyPixmap( diff --git a/afb/afbbitblt.c b/afb/afbbitblt.c index 2e416e356..d8b2ccda5 100644 --- a/afb/afbbitblt.c +++ b/afb/afbbitblt.c @@ -279,7 +279,7 @@ afbBitBlt(register DrawablePtr pSrcDrawable, register DrawablePtr pDstDrawable, /* Do bit blitting */ numRects = REGION_NUM_RECTS(&rgnDst); if (numRects && width && height) { - if(!(pptSrc = (DDXPointPtr)ALLOCATE_LOCAL(numRects * + if(!(pptSrc = (DDXPointPtr)xalloc(numRects * sizeof(DDXPointRec)))) { REGION_UNINIT(pGC->pScreen, &rgnDst); if (freeSrcClip) @@ -296,7 +296,7 @@ afbBitBlt(register DrawablePtr pSrcDrawable, register DrawablePtr pDstDrawable, (*doBitBlt)(pSrcDrawable, pDstDrawable, pGC->alu, &rgnDst, pptSrc, planemask); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); } prgnExposed = NULL; diff --git a/afb/afbblt.c b/afb/afbblt.c index 9eb4e4732..4e1a49e9d 100644 --- a/afb/afbblt.c +++ b/afb/afbblt.c @@ -132,12 +132,12 @@ MROP_NAME(afbDoBitblt)(pSrc, pDst, alu, prgnDst, pptSrc, planemask) if (nbox > 1) { /* keep ordering in each band, reverse order of bands */ - pboxNew1 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec)*nbox); + pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec)*nbox); if(!pboxNew1) return; - pptNew1 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec)*nbox); + pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec)*nbox); if(!pptNew1) { - DEALLOCATE_LOCAL(pboxNew1); + xfree(pboxNew1); return; } pboxBase = pboxNext = pbox+nbox-1; @@ -169,16 +169,16 @@ MROP_NAME(afbDoBitblt)(pSrc, pDst, alu, prgnDst, pptSrc, planemask) if (nbox > 1) { /* reverse order of rects in each band */ - pboxNew2 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); - pptNew2 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); + pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pboxNew2 || !pptNew2) { if (pptNew2) - DEALLOCATE_LOCAL(pptNew2); + xfree(pptNew2); if (pboxNew2) - DEALLOCATE_LOCAL(pboxNew2); + xfree(pboxNew2); if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } return; } @@ -553,11 +553,11 @@ bits1 = *--psrc; --pdst; \ pptSrc++; } if (pboxNew2) { - DEALLOCATE_LOCAL(pptNew2); - DEALLOCATE_LOCAL(pboxNew2); + xfree(pptNew2); + xfree(pboxNew2); } if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } } diff --git a/afb/afbfillrct.c b/afb/afbfillrct.c index b4936f097..4dff9576f 100644 --- a/afb/afbfillrct.c +++ b/afb/afbfillrct.c @@ -112,7 +112,7 @@ afbPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill, xRectangle *pre numRects = REGION_NUM_RECTS(prgnClip) * nrectFill; if (numRects > NUM_STACK_RECTS) { - pboxClippedBase = (BoxPtr)ALLOCATE_LOCAL(numRects * sizeof(BoxRec)); + pboxClippedBase = (BoxPtr)xalloc(numRects * sizeof(BoxRec)); if (!pboxClippedBase) return; } @@ -288,5 +288,5 @@ afbPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill, xRectangle *pre } } if (pboxClippedBase != stackRects) - DEALLOCATE_LOCAL(pboxClippedBase); + xfree(pboxClippedBase); } diff --git a/afb/afbfillsp.c b/afb/afbfillsp.c index 0118b475a..16295067b 100644 --- a/afb/afbfillsp.c +++ b/afb/afbfillsp.c @@ -109,11 +109,11 @@ afbSolidFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) unsigned char *rrops; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -184,8 +184,8 @@ afbSolidFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) pwidth++; ppt++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } void @@ -220,11 +220,11 @@ afbStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) unsigned char *rrops; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -298,8 +298,8 @@ afbStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) pwidth++; ppt++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } void @@ -334,11 +334,11 @@ afbTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) int d; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -429,8 +429,8 @@ afbTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) break; } } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } void @@ -466,11 +466,11 @@ afbOpaqueStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) int d; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -588,8 +588,8 @@ afbOpaqueStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) break; } } /* switch (rop) */ - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } /* Fill spans with tiles that aren't PPW bits wide */ @@ -627,11 +627,11 @@ afbUnnaturalTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) register int d; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -733,8 +733,8 @@ afbUnnaturalTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) ppt++; pwidth++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } /* Fill spans with stipples that aren't PPW bits wide */ @@ -773,11 +773,11 @@ afbUnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) int depthDst; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -878,8 +878,8 @@ afbUnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) ppt++; pwidth++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } /* Fill spans with OpaqueStipples that aren't PPW bits wide */ @@ -919,11 +919,11 @@ afbUnnaturalOpaqueStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) int depthDst; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -1125,6 +1125,6 @@ afbUnnaturalOpaqueStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) ppt++; pwidth++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } diff --git a/afb/afbimage.c b/afb/afbimage.c index 81f49730a..890429fe6 100644 --- a/afb/afbimage.c +++ b/afb/afbimage.c @@ -72,7 +72,8 @@ afbPutImage(pDraw, pGC, depth, x, y, width, height, leftPad, format, pImage) int depthDst; /* Create a tmp pixmap */ - pPixmap = (pScreen->CreatePixmap)(pScreen, width, height, depth); + pPixmap = (pScreen->CreatePixmap)(pScreen, width, height, depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) return; diff --git a/afb/afbimggblt.c b/afb/afbimggblt.c index 824f918bc..36818ac50 100644 --- a/afb/afbimggblt.c +++ b/afb/afbimggblt.c @@ -298,7 +298,7 @@ afbImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) int getWidth; /* bits to get from glyph */ #endif - if(!(ppos = (afbTEXTPOS *)ALLOCATE_LOCAL(nglyph * sizeof(afbTEXTPOS)))) + if(!(ppos = (afbTEXTPOS *)xalloc(nglyph * sizeof(afbTEXTPOS)))) return; pdstBase = afbScanlineNoBankSwitch(pdstBase, x, y, widthDst); @@ -462,7 +462,7 @@ afbImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) } /* depth */ } /* for each glyph */ } /* while nbox-- */ - DEALLOCATE_LOCAL(ppos); + xfree(ppos); break; } diff --git a/afb/afbpixmap.c b/afb/afbpixmap.c index 5ae50fb70..18d001771 100644 --- a/afb/afbpixmap.c +++ b/afb/afbpixmap.c @@ -70,11 +70,12 @@ SOFTWARE. #include "mfb.h" PixmapPtr -afbCreatePixmap(pScreen, width, height, depth) +afbCreatePixmap(pScreen, width, height, depth, usage_hint) ScreenPtr pScreen; int width; int height; int depth; + unsigned usage_hint; { PixmapPtr pPixmap; size_t datasize; @@ -128,8 +129,10 @@ afbCopyPixmap(PixmapPtr pSrc) size = pSrc->drawable.height * pSrc->devKind * pSrc->drawable.depth; pScreen = pSrc->drawable.pScreen; - pDst = (*pScreen->CreatePixmap)(pScreen, pSrc->drawable.width, - pSrc->drawable.height, pSrc->drawable.depth); + pDst = (*pScreen->CreatePixmap)(pScreen, + pSrc->drawable.width, + pSrc->drawable.height, + pSrc->drawable.depth, 0); if (!pDst) return(NullPixmap); memmove((char *)pDst->devPrivate.ptr, (char *)pSrc->devPrivate.ptr, size); @@ -249,7 +252,7 @@ afbYRotatePixmap(pPix, rh) nbyDown = rh * pPix->devKind; nbyUp = (pPix->devKind * height) - nbyDown; - if(!(ptmp = (char *)ALLOCATE_LOCAL(nbyUp))) + if(!(ptmp = (char *)xalloc(nbyUp))) return; for (d = 0; d < pPix->drawable.depth; d++) { @@ -259,7 +262,7 @@ afbYRotatePixmap(pPix, rh) memmove(pbase, pbase+nbyUp, nbyDown); /* slide the top rows down */ memmove(pbase+nbyDown, ptmp, nbyUp); /* move lower rows up to row rh */ } - DEALLOCATE_LOCAL(ptmp); + xfree(ptmp); } void diff --git a/afb/afbplygblt.c b/afb/afbplygblt.c index 79b269b85..d1de102d7 100644 --- a/afb/afbplygblt.c +++ b/afb/afbplygblt.c @@ -278,7 +278,7 @@ afbPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) int getWidth; /* bits to get from glyph */ #endif - if(!(ppos = (afbTEXTPOS *)ALLOCATE_LOCAL(nglyph * sizeof(afbTEXTPOS)))) + if(!(ppos = (afbTEXTPOS *)xalloc(nglyph * sizeof(afbTEXTPOS)))) return; pdstBase = afbScanlineNoBankSwitch(pdstBase, x, y, widthDst); @@ -453,7 +453,7 @@ afbPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) } /* depth */ } /* for each glyph */ } /* while nbox-- */ - DEALLOCATE_LOCAL(ppos); + xfree(ppos); break; } diff --git a/afb/afbwindow.c b/afb/afbwindow.c index b2c679274..c0dee980d 100644 --- a/afb/afbwindow.c +++ b/afb/afbwindow.c @@ -142,7 +142,7 @@ afbCopyWindow(pWin, ptOldOrg, prgnSrc) pbox = REGION_RECTS(prgnDst); nbox = REGION_NUM_RECTS(prgnDst); - if(!(pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))) + if(!(pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec)))) return; ppt = pptSrc; @@ -153,7 +153,7 @@ afbCopyWindow(pWin, ptOldOrg, prgnSrc) afbDoBitblt((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot, GXcopy, prgnDst, pptSrc, ~0); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); REGION_DESTROY(pWin->drawable.pScreen, prgnDst); } @@ -738,7 +738,8 @@ extern PixmapPtr cfbCreatePixmap( ScreenPtr /*pScreen*/, int /*width*/, int /*height*/, - int /*depth*/ + int /*depth*/, + unsigned /*usage_hint*/ ); extern Bool cfbDestroyPixmap( diff --git a/cfb/cfbbitblt.c b/cfb/cfbbitblt.c index faf49b92d..00bf41367 100644 --- a/cfb/cfbbitblt.c +++ b/cfb/cfbbitblt.c @@ -296,7 +296,7 @@ cfbBitBlt ( numRects = REGION_NUM_RECTS(&rgnDst); if (numRects && width && height) { - if(!(pptSrc = (DDXPointPtr)ALLOCATE_LOCAL(numRects * + if(!(pptSrc = (DDXPointPtr)xalloc(numRects * sizeof(DDXPointRec)))) { REGION_UNINIT(pGC->pScreen, &rgnDst); @@ -313,7 +313,7 @@ cfbBitBlt ( } (*doBitBlt) (pSrcDrawable, pDstDrawable, pGC->alu, &rgnDst, pptSrc, pGC->planemask); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); } prgnExposed = NULL; @@ -559,7 +559,7 @@ cfbCopyPlaneReduce ( numRects = REGION_NUM_RECTS(&rgnDst); if (numRects && width && height) { - if(!(pptSrc = (DDXPointPtr)ALLOCATE_LOCAL(numRects * + if(!(pptSrc = (DDXPointPtr)xalloc(numRects * sizeof(DDXPointRec)))) { REGION_UNINIT(pGC->pScreen, &rgnDst); @@ -576,7 +576,7 @@ cfbCopyPlaneReduce ( } (*doCopyPlane) (pSrcDrawable, pDstDrawable, pGC->alu, &rgnDst, pptSrc, pGC->planemask, bitPlane); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); } prgnExposed = NULL; @@ -1407,7 +1407,8 @@ RegionPtr cfbCopyPlane(pSrcDrawable, pDstDrawable, ScreenPtr pScreen = pSrcDrawable->pScreen; GCPtr pGC1; - pBitmap = (*pScreen->CreatePixmap) (pScreen, width, height, 1); + pBitmap = (*pScreen->CreatePixmap) (pScreen, width, height, 1, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pBitmap) return NULL; pGC1 = GetScratchGC (1, pScreen); diff --git a/cfb/cfbblt.c b/cfb/cfbblt.c index 1e577f526..ff34589ff 100644 --- a/cfb/cfbblt.c +++ b/cfb/cfbblt.c @@ -207,13 +207,13 @@ MROP_NAME(cfbDoBitblt)( if (nbox > 1) { /* keep ordering in each band, reverse order of bands */ - pboxNew1 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); + pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); if(!pboxNew1) return; - pptNew1 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pptNew1) { - DEALLOCATE_LOCAL(pboxNew1); + xfree(pboxNew1); return; } pboxBase = pboxNext = pbox+nbox-1; @@ -251,16 +251,16 @@ MROP_NAME(cfbDoBitblt)( if (nbox > 1) { /* reverse order of rects in each band */ - pboxNew2 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); - pptNew2 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); + pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pboxNew2 || !pptNew2) { - if (pptNew2) DEALLOCATE_LOCAL(pptNew2); - if (pboxNew2) DEALLOCATE_LOCAL(pboxNew2); + if (pptNew2) xfree(pptNew2); + if (pboxNew2) xfree(pboxNew2); if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } return; } @@ -922,12 +922,12 @@ bits1 = *--psrc; --pdst; \ } if (pboxNew2) { - DEALLOCATE_LOCAL(pptNew2); - DEALLOCATE_LOCAL(pboxNew2); + xfree(pptNew2); + xfree(pboxNew2); } if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } } diff --git a/cfb/cfbfillrct.c b/cfb/cfbfillrct.c index 4c78c24b3..fc2d31bdc 100644 --- a/cfb/cfbfillrct.c +++ b/cfb/cfbfillrct.c @@ -196,7 +196,7 @@ cfbPolyFillRect(pDrawable, pGC, nrectFill, prectInit) numRects = REGION_NUM_RECTS(prgnClip) * nrectFill; if (numRects > NUM_STACK_RECTS) { - pboxClippedBase = (BoxPtr)ALLOCATE_LOCAL(numRects * sizeof(BoxRec)); + pboxClippedBase = (BoxPtr)xalloc(numRects * sizeof(BoxRec)); if (!pboxClippedBase) return; } @@ -301,5 +301,5 @@ cfbPolyFillRect(pDrawable, pGC, nrectFill, prectInit) (*BoxFill) (pDrawable, pGC, pboxClipped-pboxClippedBase, pboxClippedBase); if (pboxClippedBase != stackRects) - DEALLOCATE_LOCAL(pboxClippedBase); + xfree(pboxClippedBase); } diff --git a/cfb/cfbfillsp.c b/cfb/cfbfillsp.c index ddd4f1421..36710b612 100644 --- a/cfb/cfbfillsp.c +++ b/cfb/cfbfillsp.c @@ -186,12 +186,12 @@ int fSorted; n = nInit * miFindMaxBand( cfbGetCompositeClip(pGC) ); if ( n == 0 ) return; - pwidth = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - ppt = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidth = (int *)xalloc(n * sizeof(int)); + ppt = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!ppt || !pwidth) { - if (ppt) DEALLOCATE_LOCAL(ppt); - if (pwidth) DEALLOCATE_LOCAL(pwidth); + if (ppt) xfree(ppt); + if (pwidth) xfree(pwidth); return; } n = miClipSpans( cfbGetCompositeClip(pGC), @@ -203,8 +203,8 @@ int fSorted; (*fill) (pDrawable, n, ppt, pwidth, pGC->tile.pixmap, xrot, yrot, pGC->alu, pGC->planemask); - DEALLOCATE_LOCAL(ppt); - DEALLOCATE_LOCAL(pwidth); + xfree(ppt); + xfree(pwidth); } #if PSZ == 8 @@ -251,12 +251,12 @@ int fSorted; n = nInit * miFindMaxBand( cfbGetCompositeClip(pGC) ); if ( n == 0 ) return; - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } @@ -392,8 +392,8 @@ int fSorted; } } } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } #else /* PSZ != 8 */ @@ -434,12 +434,12 @@ int fSorted; n = nInit * miFindMaxBand( cfbGetCompositeClip(pGC) ); if ( n == 0 ) return; - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -599,8 +599,8 @@ int fSorted; ppt++; pwidth++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } #endif /* PSZ == 8 */ @@ -648,12 +648,12 @@ cfb8Stipple32FS (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) n = nInit * miFindMaxBand(pGC->pCompositeClip); if ( n == 0 ) return; - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -816,8 +816,8 @@ cfb8Stipple32FS (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) } } } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } void @@ -862,12 +862,12 @@ cfb8OpaqueStipple32FS (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) n = nInit * miFindMaxBand(pGC->pCompositeClip); if ( n == 0 ) return; - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -997,8 +997,8 @@ cfb8OpaqueStipple32FS (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) } } } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } #endif /* PSZ == 8 */ diff --git a/cfb/cfbglblt8.c b/cfb/cfbglblt8.c index c4cba0e15..4d964b35d 100644 --- a/cfb/cfbglblt8.c +++ b/cfb/cfbglblt8.c @@ -355,7 +355,7 @@ cfbPolyGlyphBlt8Clipped( } if (!numRects) return; - clips = (CARD32 *)ALLOCATE_LOCAL ((maxAscent + maxDescent) * + clips = (CARD32 *)xalloc ((maxAscent + maxDescent) * sizeof (CARD32)); while (nglyph--) { @@ -471,7 +471,7 @@ cfbPolyGlyphBlt8Clipped( } } } - DEALLOCATE_LOCAL (clips); + xfree (clips); } #endif /* FOUR_BIT_CODE */ diff --git a/cfb/cfbpixmap.c b/cfb/cfbpixmap.c index 247331c6d..776094c09 100644 --- a/cfb/cfbpixmap.c +++ b/cfb/cfbpixmap.c @@ -65,11 +65,12 @@ SOFTWARE. #include "cfbmskbits.h" PixmapPtr -cfbCreatePixmap (pScreen, width, height, depth) +cfbCreatePixmap (pScreen, width, height, depth, usage_hint) ScreenPtr pScreen; int width; int height; int depth; + unsigned usage_hint; { PixmapPtr pPixmap; size_t datasize; @@ -123,7 +124,7 @@ cfbCopyPixmap(pSrc) size = pSrc->drawable.height * pSrc->devKind; pScreen = pSrc->drawable.pScreen; pDst = (*pScreen->CreatePixmap) (pScreen, pSrc->drawable.width, - pSrc->drawable.height, pSrc->drawable.depth); + pSrc->drawable.height, pSrc->drawable.depth, 0); if (!pDst) return NullPixmap; memmove((char *)pDst->devPrivate.ptr, (char *)pSrc->devPrivate.ptr, size); @@ -270,7 +271,7 @@ cfbXRotatePixmap(pPix, rw) int size, tsize; tsize = PixmapBytePad(pPix->drawable.width - rot, pPix->drawable.depth); - pwTmp = (CfbBits *) ALLOCATE_LOCAL(pPix->drawable.height * tsize); + pwTmp = (CfbBits *) xalloc(pPix->drawable.height * tsize); if (!pwTmp) return; /* divide pw (the pixmap) in two vertically at (w - rot) and swap */ @@ -288,7 +289,7 @@ cfbXRotatePixmap(pPix, rw) 0, 0, rot, 0, (int)pPix->drawable.width - rot, (int)pPix->drawable.height, tsize, size); - DEALLOCATE_LOCAL(pwTmp); + xfree(pwTmp); #endif } } @@ -328,13 +329,13 @@ cfbYRotatePixmap(pPix, rh) nbyDown = rot * pPix->devKind; nbyUp = (pPix->devKind * pPix->drawable.height) - nbyDown; - if(!(ptmp = (char *)ALLOCATE_LOCAL(nbyUp))) + if(!(ptmp = (char *)xalloc(nbyUp))) return; memmove(ptmp, pbase, nbyUp); /* save the low rows */ memmove(pbase, pbase+nbyUp, nbyDown); /* slide the top rows down */ memmove(pbase+nbyDown, ptmp, nbyUp); /* move lower rows up to row rot */ - DEALLOCATE_LOCAL(ptmp); + xfree(ptmp); } void diff --git a/cfb/cfbsolid.c b/cfb/cfbsolid.c index f0da05ef0..6b8238dd9 100644 --- a/cfb/cfbsolid.c +++ b/cfb/cfbsolid.c @@ -811,12 +811,12 @@ RROP_NAME(cfbSolidSpans) (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) devPriv = cfbGetGCPrivate(pGC); RROP_FETCH_GCPRIV(devPriv) n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -1359,7 +1359,7 @@ RROP_NAME(cfbSolidSpans) (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) } #endif } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); RROP_UNDECLARE } diff --git a/cfb/cfbtile32.c b/cfb/cfbtile32.c index 90439adc3..be016a70a 100644 --- a/cfb/cfbtile32.c +++ b/cfb/cfbtile32.c @@ -367,12 +367,12 @@ MROP_NAME(cfbTile32FS)(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) #endif n = nInit * miFindMaxBand( cfbGetCompositeClip(pGC) ); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -512,6 +512,6 @@ MROP_NAME(cfbTile32FS)(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) } } } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } diff --git a/cfb/cfbwindow.c b/cfb/cfbwindow.c index 2b582d42f..50728764e 100644 --- a/cfb/cfbwindow.c +++ b/cfb/cfbwindow.c @@ -133,7 +133,7 @@ cfbCopyWindow(pWin, ptOldOrg, prgnSrc) pbox = REGION_RECTS(&rgnDst); nbox = REGION_NUM_RECTS(&rgnDst); - if(!nbox || !(pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))) + if(!nbox || !(pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec)))) { REGION_UNINIT(pWin->drawable.pScreen, &rgnDst); return; @@ -148,7 +148,7 @@ cfbCopyWindow(pWin, ptOldOrg, prgnSrc) cfbDoBitbltCopy((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot, GXcopy, &rgnDst, pptSrc, ~0L); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); REGION_UNINIT(pWin->drawable.pScreen, &rgnDst); } diff --git a/composite/compalloc.c b/composite/compalloc.c index 4666ff01f..0372b9bfa 100644 --- a/composite/compalloc.c +++ b/composite/compalloc.c @@ -462,7 +462,8 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h) WindowPtr pParent = pWin->parent; PixmapPtr pPixmap; - pPixmap = (*pScreen->CreatePixmap) (pScreen, w, h, pWin->drawable.depth); + pPixmap = (*pScreen->CreatePixmap) (pScreen, w, h, pWin->drawable.depth, + CREATE_PIXMAP_USAGE_BACKING_PIXMAP); if (!pPixmap) return 0; diff --git a/config/hal.c b/config/hal.c index d7835e653..6bb449d5a 100644 --- a/config/hal.c +++ b/config/hal.c @@ -177,7 +177,8 @@ device_added(LibHalContext *hal_ctx, const char *udi) if (strcmp(props[i], "input.keys") == 0 || strcmp(props[i], "input.keyboard") == 0) type |= TYPE_KEYS; - if (strcmp(props[i], "input.mouse") == 0) + if (strcmp(props[i], "input.mouse") == 0 || + strcmp(props[i], "input.touchpad") == 0) type |= TYPE_POINTER; } libhal_free_string_array(props); diff --git a/configure.ac b/configure.ac index 417aca1d7..278dcacd4 100644 --- a/configure.ac +++ b/configure.ac @@ -454,9 +454,6 @@ AC_ARG_WITH(xkb-path, AS_HELP_STRING([--with-xkb-path=PATH], [Path to XK AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${datadir}/X11/xkb/compiled)]), [ XKBOUTPUT="$withval" ], [ XKBOUTPUT="compiled" ]) -AC_ARG_WITH(rgb-path, AS_HELP_STRING([--with-rgb-path=PATH], [Path to RGB database (default: ${datadir}/X11/rgb)]), - [ RGBPATH="$withval" ], - [ RGBPATH="${datadir}/X11/rgb" ]) AC_ARG_WITH(serverconfig-path, AS_HELP_STRING([--with-serverconfig-path=PATH], [Path to server config (default: ${libdir}/xserver)]), [ SERVERCONFIG="$withval" ], [ SERVERCONFIG="${libdir}/xserver" ]) @@ -1019,13 +1016,7 @@ if test "x$XDMAUTH" = xyes; then fi fi -AM_CONDITIONAL(USE_RGB_BUILTIN, [test "x$USE_RGB_BUILTIN" = xyes]) -if test "x$USE_RGB_BUILTIN" = xyes; then - AC_DEFINE(USE_RGB_BUILTIN, 1, [Use built-in RGB color database]) -fi - AC_DEFINE_DIR(COMPILEDDEFAULTFONTPATH, FONTPATH, [Default font path]) -AC_DEFINE_DIR(RGB_DB, RGBPATH, [Default RGB path]) AC_DEFINE_DIR(PCI_TXT_IDS_PATH, PCI_TXT_IDS_DIR, [Default PCI text file ID path]) AC_DEFINE_DIR(SERVERCONFIGdir, SERVERCONFIG, [Server config path]) AC_DEFINE_DIR(BASE_FONT_PATH, FONTDIR, [Default base font path]) @@ -1061,7 +1052,6 @@ else fi AM_CONDITIONAL(DEBUG, [test "x$DEBUGGING" = xyes]) -AC_DEFINE(USE_RGB_TXT, 1, [Use rgb.txt directly]) AC_DEFINE(MITMISC, 1, [Support MIT Misc extension]) AC_DEFINE(XTEST, 1, [Support XTest extension]) AC_DEFINE(XSYNC, 1, [Support XSync extension]) @@ -1564,6 +1554,17 @@ dnl has it in libc), or if libdl is needed to get it. AC_SUBST([sdkdir]) AC_SUBST([extdir]) AC_SUBST([logdir]) + + # stuff the ABI versions into the pc file too + extract_abi() { + grep ^.define.*${1}_VERSION ${srcdir}/hw/xfree86/common/xf86Module.h | tr '(),' ' .' | awk '{ print $4$5 }' + } + abi_ansic=`extract_abi ANSIC` + abi_videodrv=`extract_abi VIDEODRV` + abi_xinput=`extract_abi XINPUT` + abi_extension=`extract_abi EXTENSION` + abi_font=`extract_abi FONT` + AC_SUBST([abi_ansic abi_videodrv abi_xinput abi_extension abi_font]) fi AM_CONDITIONAL([XORG], [test "x$XORG" = xyes]) AM_CONDITIONAL([XORG_BUS_LINUXPCI], [test "x$xorg_bus_linuxpci" = xyes]) @@ -1578,7 +1579,9 @@ AM_CONDITIONAL([LINUX_ALPHA], [test "x$linux_alpha" = xyes]) AM_CONDITIONAL([LNXACPI], [test "x$linux_acpi" = xyes]) AM_CONDITIONAL([SOLARIS_USL_CONSOLE], [test "x$solaris_usl_console" = xyes]) AM_CONDITIONAL([SOLARIS_ASM_INLINE], [test "x$solaris_asm_inline" = xyes]) -AM_CONDITIONAL(DGA, [test "x$DGA" = xyes]) +AM_CONDITIONAL([DGA], [test "x$DGA" = xyes]) +AM_CONDITIONAL([XF86MISC], [test "x$XF86MISC" = xyes]) +AM_CONDITIONAL([XF86VIDMODE], [test "x$XF86VIDMODE" = xyes]) dnl legacy fb support test "x$MFB" = xauto && MFB="$XORG" diff --git a/dbe/midbe.c b/dbe/midbe.c index e1c7f8d7d..c02e591d0 100644 --- a/dbe/midbe.c +++ b/dbe/midbe.c @@ -178,7 +178,7 @@ miDbeAllocBackBufferName(WindowPtr pWin, XID bufId, int swapAction) if (!(pDbeWindowPrivPriv->pFrontBuffer = (*pScreen->CreatePixmap)(pScreen, pDbeWindowPriv->width, pDbeWindowPriv->height, - pWin->drawable.depth))) + pWin->drawable.depth, 0))) { return(BadAlloc); } @@ -187,7 +187,7 @@ miDbeAllocBackBufferName(WindowPtr pWin, XID bufId, int swapAction) if (!(pDbeWindowPrivPriv->pBackBuffer = (*pScreen->CreatePixmap)(pScreen, pDbeWindowPriv->width, pDbeWindowPriv->height, - pWin->drawable.depth))) + pWin->drawable.depth, 0))) { (*pScreen->DestroyPixmap)(pDbeWindowPrivPriv->pFrontBuffer); return(BadAlloc); @@ -653,10 +653,10 @@ miDbePositionWindow(WindowPtr pWin, int x, int y) /* Create DBE buffer pixmaps equal to size of resized window. */ pFrontBuffer = (*pScreen->CreatePixmap)(pScreen, width, height, - pWin->drawable.depth); + pWin->drawable.depth, 0); pBackBuffer = (*pScreen->CreatePixmap)(pScreen, width, height, - pWin->drawable.depth); + pWin->drawable.depth, 0); if (!pFrontBuffer || !pBackBuffer) { diff --git a/dix/colormap.c b/dix/colormap.c index d07cff7db..c4c8c8bfe 100644 --- a/dix/colormap.c +++ b/dix/colormap.c @@ -744,7 +744,7 @@ UpdateColors (ColormapPtr pmap) pVisual = pmap->pVisual; size = pVisual->ColormapEntries; - defs = (xColorItem *)ALLOCATE_LOCAL(size * sizeof(xColorItem)); + defs = (xColorItem *)xalloc(size * sizeof(xColorItem)); if (!defs) return; n = 0; @@ -794,7 +794,7 @@ UpdateColors (ColormapPtr pmap) } if (n) (*pmap->pScreen->StoreColors)(pmap, n, defs); - DEALLOCATE_LOCAL(defs); + xfree(defs); } /* Get a read-only color from a ColorMap (probably slow for large maps) @@ -1745,14 +1745,14 @@ AllocDirect (int client, ColormapPtr pmap, int c, int r, int g, int b, Bool cont for(p = pixels; p < pixels + c; p++) *p = 0; - ppixRed = (Pixel *)ALLOCATE_LOCAL(npixR * sizeof(Pixel)); - ppixGreen = (Pixel *)ALLOCATE_LOCAL(npixG * sizeof(Pixel)); - ppixBlue = (Pixel *)ALLOCATE_LOCAL(npixB * sizeof(Pixel)); + ppixRed = (Pixel *)xalloc(npixR * sizeof(Pixel)); + ppixGreen = (Pixel *)xalloc(npixG * sizeof(Pixel)); + ppixBlue = (Pixel *)xalloc(npixB * sizeof(Pixel)); if (!ppixRed || !ppixGreen || !ppixBlue) { - if (ppixBlue) DEALLOCATE_LOCAL(ppixBlue); - if (ppixGreen) DEALLOCATE_LOCAL(ppixGreen); - if (ppixRed) DEALLOCATE_LOCAL(ppixRed); + if (ppixBlue) xfree(ppixBlue); + if (ppixGreen) xfree(ppixGreen); + if (ppixRed) xfree(ppixRed); return(BadAlloc); } @@ -1790,9 +1790,9 @@ AllocDirect (int client, ColormapPtr pmap, int c, int r, int g, int b, Bool cont if (okB) for(ppix = ppixBlue, npix = npixB; --npix >= 0; ppix++) pmap->blue[*ppix].refcnt = 0; - DEALLOCATE_LOCAL(ppixBlue); - DEALLOCATE_LOCAL(ppixGreen); - DEALLOCATE_LOCAL(ppixRed); + xfree(ppixBlue); + xfree(ppixGreen); + xfree(ppixRed); return(BadAlloc); } @@ -1834,9 +1834,9 @@ AllocDirect (int client, ColormapPtr pmap, int c, int r, int g, int b, Bool cont for (pDst = pixels; pDst < pixels + c; pDst++) *pDst |= ALPHAMASK(pmap->pVisual); - DEALLOCATE_LOCAL(ppixBlue); - DEALLOCATE_LOCAL(ppixGreen); - DEALLOCATE_LOCAL(ppixRed); + xfree(ppixBlue); + xfree(ppixGreen); + xfree(ppixRed); return (Success); } @@ -1852,7 +1852,7 @@ AllocPseudo (int client, ColormapPtr pmap, int c, int r, Bool contig, npix = c << r; if ((r >= 32) || (npix > pmap->freeRed) || (npix < c)) return(BadAlloc); - if(!(ppixTemp = (Pixel *)ALLOCATE_LOCAL(npix * sizeof(Pixel)))) + if(!(ppixTemp = (Pixel *)xalloc(npix * sizeof(Pixel)))) return(BadAlloc); ok = AllocCP(pmap, pmap->red, c, r, contig, ppixTemp, pmask); @@ -1882,7 +1882,7 @@ AllocPseudo (int client, ColormapPtr pmap, int c, int r, Bool contig, pmap->numPixelsRed[client] += npix; pmap->freeRed -= npix; } - DEALLOCATE_LOCAL(ppixTemp); + xfree(ppixTemp); return (ok ? Success : BadAlloc); } @@ -2082,7 +2082,7 @@ AllocShared (ColormapPtr pmap, Pixel *ppix, int c, int r, int g, int b, npixClientNew = c << (r + g + b); npixShared = (c << r) + (c << g) + (c << b); - psharedList = (SHAREDCOLOR **)ALLOCATE_LOCAL(npixShared * + psharedList = (SHAREDCOLOR **)xalloc(npixShared * sizeof(SHAREDCOLOR *)); if (!psharedList) return FALSE; @@ -2197,7 +2197,7 @@ AllocShared (ColormapPtr pmap, Pixel *ppix, int c, int r, int g, int b, } } } - DEALLOCATE_LOCAL(psharedList); + xfree(psharedList); return TRUE; } @@ -2672,7 +2672,7 @@ IsMapInstalled(Colormap map, WindowPtr pWin) Colormap *pmaps; int imap, nummaps, found; - pmaps = (Colormap *) ALLOCATE_LOCAL( + pmaps = (Colormap *) xalloc( pWin->drawable.pScreen->maxInstalledCmaps * sizeof(Colormap)); if(!pmaps) return(FALSE); @@ -2687,6 +2687,6 @@ IsMapInstalled(Colormap map, WindowPtr pWin) break; } } - DEALLOCATE_LOCAL(pmaps); + xfree(pmaps); return (found); } diff --git a/dix/devices.c b/dix/devices.c index 3395cd33d..5e82759bc 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2048,7 +2048,7 @@ ProcGetMotionEvents(ClientPtr client) { if (CompareTimeStamps(stop, currentTime) == LATER) stop = currentTime; - coords = (xTimecoord *)ALLOCATE_LOCAL(mouse->valuator->numMotionEvents + coords = (xTimecoord *)xalloc(mouse->valuator->numMotionEvents * sizeof(xTimecoord)); if (!coords) return BadAlloc; @@ -2082,7 +2082,7 @@ ProcGetMotionEvents(ClientPtr client) (char *)coords); } if (coords) - DEALLOCATE_LOCAL(coords); + xfree(coords); return Success; } diff --git a/dix/dispatch.c b/dix/dispatch.c index 814c2a853..19d02fd0c 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -379,7 +379,7 @@ Dispatch(void) InitSelections(); nClients = 0; - clientReady = (int *) ALLOCATE_LOCAL(sizeof(int) * MaxClients); + clientReady = (int *) xalloc(sizeof(int) * MaxClients); if (!clientReady) return; @@ -508,7 +508,7 @@ Dispatch(void) ddxBeforeReset (); #endif KillAllClients(); - DEALLOCATE_LOCAL(clientReady); + xfree(clientReady); dispatchException &= ~DE_RESET; #ifdef XSERVER_DTRACE FreeRequestNames(); @@ -900,7 +900,7 @@ ProcQueryTree(ClientPtr client) { int curChild = 0; - childIDs = (Window *) ALLOCATE_LOCAL(numChildren * sizeof(Window)); + childIDs = (Window *) xalloc(numChildren * sizeof(Window)); if (!childIDs) return BadAlloc; for (pChild = pWin->lastChild; pChild != pHead; pChild = pChild->prevSib) @@ -915,7 +915,7 @@ ProcQueryTree(ClientPtr client) { client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write; WriteSwappedDataToClient(client, numChildren * sizeof(Window), childIDs); - DEALLOCATE_LOCAL(childIDs); + xfree(childIDs); } return(client->noClientException); @@ -1411,7 +1411,7 @@ ProcQueryFont(ClientPtr client) rlength = sizeof(xQueryFontReply) + FONTINFONPROPS(FONTCHARSET(pFont)) * sizeof(xFontProp) + nprotoxcistructs * sizeof(xCharInfo); - reply = (xQueryFontReply *)ALLOCATE_LOCAL(rlength); + reply = (xQueryFontReply *)xalloc(rlength); if(!reply) { return(BadAlloc); @@ -1423,7 +1423,7 @@ ProcQueryFont(ClientPtr client) QueryFont( pFont, reply, nprotoxcistructs); WriteReplyToClient(client, rlength, reply); - DEALLOCATE_LOCAL(reply); + xfree(reply); return(client->noClientException); } } @@ -1562,7 +1562,7 @@ ProcCreatePixmap(ClientPtr client) CreatePmap: pMap = (PixmapPtr)(*pDraw->pScreen->CreatePixmap) (pDraw->pScreen, stuff->width, - stuff->height, stuff->depth); + stuff->height, stuff->depth, 0); if (pMap) { pMap->drawable.serialNumber = NEXT_SERIAL_NUMBER; @@ -2277,7 +2277,7 @@ DoGetImage(ClientPtr client, int format, Drawable drawable, length += widthBytesLine; } } - if(!(pBuf = (char *) ALLOCATE_LOCAL(length))) + if(!(pBuf = (char *) xalloc(length))) return (BadAlloc); WriteReplyToClient(client, sizeof (xGetImageReply), &xgi); } @@ -2378,7 +2378,7 @@ DoGetImage(ClientPtr client, int format, Drawable drawable, if (pVisibleRegion) REGION_DESTROY(pDraw->pScreen, pVisibleRegion); if (!im_return) - DEALLOCATE_LOCAL(pBuf); + xfree(pBuf); return (client->noClientException); } @@ -2650,7 +2650,7 @@ ProcListInstalledColormaps(ClientPtr client) goto out; preply = (xListInstalledColormapsReply *) - ALLOCATE_LOCAL(sizeof(xListInstalledColormapsReply) + + xalloc(sizeof(xListInstalledColormapsReply) + pWin->drawable.pScreen->maxInstalledCmaps * sizeof(Colormap)); if(!preply) @@ -2665,7 +2665,7 @@ ProcListInstalledColormaps(ClientPtr client) WriteReplyToClient(client, sizeof (xListInstalledColormapsReply), preply); client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write; WriteSwappedDataToClient(client, nummaps * sizeof(Colormap), &preply[1]); - DEALLOCATE_LOCAL(preply); + xfree(preply); rc = client->noClientException; out: return (rc == BadValue) ? BadColor : rc; @@ -2794,7 +2794,7 @@ ProcAllocColorCells (ClientPtr client) } nmasks = stuff->planes; length = ((long)npixels + (long)nmasks) * sizeof(Pixel); - ppixels = (Pixel *)ALLOCATE_LOCAL(length); + ppixels = (Pixel *)xalloc(length); if(!ppixels) return(BadAlloc); pmasks = ppixels + npixels; @@ -2802,7 +2802,7 @@ ProcAllocColorCells (ClientPtr client) if( (rc = AllocColorCells(client->index, pcmp, npixels, nmasks, (Bool)stuff->contiguous, ppixels, pmasks)) ) { - DEALLOCATE_LOCAL(ppixels); + xfree(ppixels); if (client->noClientException != Success) return(client->noClientException); else @@ -2821,7 +2821,7 @@ ProcAllocColorCells (ClientPtr client) client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write; WriteSwappedDataToClient(client, length, ppixels); } - DEALLOCATE_LOCAL(ppixels); + xfree(ppixels); return (client->noClientException); } else @@ -2863,7 +2863,7 @@ ProcAllocColorPlanes(ClientPtr client) acpr.sequenceNumber = client->sequence; acpr.nPixels = npixels; length = (long)npixels * sizeof(Pixel); - ppixels = (Pixel *)ALLOCATE_LOCAL(length); + ppixels = (Pixel *)xalloc(length); if(!ppixels) return(BadAlloc); if( (rc = AllocColorPlanes(client->index, pcmp, npixels, @@ -2871,7 +2871,7 @@ ProcAllocColorPlanes(ClientPtr client) (Bool)stuff->contiguous, ppixels, &acpr.redMask, &acpr.greenMask, &acpr.blueMask)) ) { - DEALLOCATE_LOCAL(ppixels); + xfree(ppixels); if (client->noClientException != Success) return(client->noClientException); else @@ -2886,7 +2886,7 @@ ProcAllocColorPlanes(ClientPtr client) client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write; WriteSwappedDataToClient(client, length, ppixels); } - DEALLOCATE_LOCAL(ppixels); + xfree(ppixels); return (client->noClientException); } else @@ -3016,12 +3016,12 @@ ProcQueryColors(ClientPtr client) xQueryColorsReply qcr; count = ((client->req_len << 2) - sizeof(xQueryColorsReq)) >> 2; - prgbs = (xrgb *)ALLOCATE_LOCAL(count * sizeof(xrgb)); + prgbs = (xrgb *)xalloc(count * sizeof(xrgb)); if(!prgbs && count) return(BadAlloc); if( (rc = QueryColors(pcmp, count, (Pixel *)&stuff[1], prgbs)) ) { - if (prgbs) DEALLOCATE_LOCAL(prgbs); + if (prgbs) xfree(prgbs); if (client->noClientException != Success) return(client->noClientException); else @@ -3040,7 +3040,7 @@ ProcQueryColors(ClientPtr client) client->pSwapReplyFunc = (ReplySwapPtr) SQColorsExtend; WriteSwappedDataToClient(client, count * sizeof(xrgb), prgbs); } - if (prgbs) DEALLOCATE_LOCAL(prgbs); + if (prgbs) xfree(prgbs); return(client->noClientException); } diff --git a/dix/dixfonts.c b/dix/dixfonts.c index 4ea630210..2979c6424 100644 --- a/dix/dixfonts.c +++ b/dix/dixfonts.c @@ -778,7 +778,7 @@ finish: reply.nFonts = nnames; reply.sequenceNumber = client->sequence; - bufptr = bufferStart = (char *) ALLOCATE_LOCAL(reply.length << 2); + bufptr = bufferStart = (char *) xalloc(reply.length << 2); if (!bufptr && reply.length) { SendErrorToClient(client, X_ListFonts, 0, 0, BadAlloc); @@ -803,7 +803,7 @@ finish: client->pSwapReplyFunc = ReplySwapVector[X_ListFonts]; WriteSwappedDataToClient(client, sizeof(xListFontsReply), &reply); (void) WriteToClient(client, stringLens + nnames, bufferStart); - DEALLOCATE_LOCAL(bufferStart); + xfree(bufferStart); bail: if (c->slept) @@ -1808,7 +1808,7 @@ SetDefaultFontPath(char *path) /* get enough for string, plus values -- use up commas */ len = strlen(path) + 1; - nump = cp = newpath = (unsigned char *) ALLOCATE_LOCAL(len); + nump = cp = newpath = (unsigned char *) xalloc(len); if (!newpath) return BadAlloc; pp = (unsigned char *) path; @@ -1829,7 +1829,7 @@ SetDefaultFontPath(char *path) err = SetFontPathElements(num, newpath, &bad, TRUE); - DEALLOCATE_LOCAL(newpath); + xfree(newpath); return err; } diff --git a/dix/events.c b/dix/events.c index e13e290f4..2488a9b7d 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1098,9 +1098,10 @@ EnqueueEvent(xEvent *xE, DeviceIntPtr device, int count) #endif sprite.hotPhys.x = XE_KBPTR.rootX; sprite.hotPhys.y = XE_KBPTR.rootY; - /* do motion compression */ + /* do motion compression, but not if from different devices */ if (tail && (tail->event->u.u.type == MotionNotify) && + (tail->device == device) && (tail->pScreen == sprite.hotPhys.pScreen)) { tail->event->u.keyButtonPointer.rootX = sprite.hotPhys.x; @@ -3174,7 +3175,7 @@ drawable.id:0; #ifdef XKB /* This function is used to set the key pressed or key released state - this is only used when the pressing of keys does not cause - CoreProcessKeyEvent to be called, as in for example Mouse Keys. + the device's processInputProc to be called, as in for example Mouse Keys. */ void FixKeyState (xEvent *xE, DeviceIntPtr keybd) @@ -3187,22 +3188,19 @@ FixKeyState (xEvent *xE, DeviceIntPtr keybd) kptr = &keyc->down[key >> 3]; bit = 1 << (key & 7); - if (((xE->u.u.type==KeyPress)||(xE->u.u.type==KeyRelease))) { + if (((xE->u.u.type==KeyPress)||(xE->u.u.type==KeyRelease)|| + (xE->u.u.type==DeviceKeyPress)||(xE->u.u.type==DeviceKeyRelease)) + ) { DebugF("FixKeyState: Key %d %s\n",key, - (xE->u.u.type==KeyPress?"down":"up")); + (((xE->u.u.type==KeyPress)||(xE->u.u.type==DeviceKeyPress))?"down":"up")); } - switch (xE->u.u.type) - { - case KeyPress: + if (xE->u.u.type == KeyPress || xE->u.u.type == DeviceKeyPress) *kptr |= bit; - break; - case KeyRelease: + else if (xE->u.u.type == KeyRelease || xE->u.u.type == DeviceKeyRelease) *kptr &= ~bit; - break; - default: - FatalError("Impossible keyboard event"); - } + else + FatalError("Impossible keyboard event"); } #endif diff --git a/dix/extension.c b/dix/extension.c index b765008e8..0e97976db 100644 --- a/dix/extension.c +++ b/dix/extension.c @@ -324,7 +324,7 @@ ProcListExtensions(ClientPtr client) total_length += strlen(extensions[i]->aliases[j]) + 1; } reply.length = (total_length + 3) >> 2; - buffer = bufptr = (char *)ALLOCATE_LOCAL(total_length); + buffer = bufptr = (char *)xalloc(total_length); if (!buffer) return(BadAlloc); for (i=0; i<NumExtensions; i++) @@ -348,7 +348,7 @@ ProcListExtensions(ClientPtr client) if (reply.length) { WriteToClient(client, total_length, buffer); - DEALLOCATE_LOCAL(buffer); + xfree(buffer); } return(client->noClientException); } @@ -677,7 +677,7 @@ CreateDefaultTile (GCPtr pGC) (*pGC->pScreen->QueryBestSize)(TileShape, &w, &h, pGC->pScreen); pTile = (PixmapPtr) (*pGC->pScreen->CreatePixmap)(pGC->pScreen, - w, h, pGC->depth); + w, h, pGC->depth, 0); pgcScratch = GetScratchGC(pGC->depth, pGC->pScreen); if (!pTile || !pgcScratch) { @@ -1020,7 +1020,7 @@ CreateDefaultStipple(int screenNum) h = 16; (* pScreen->QueryBestSize)(StippleShape, &w, &h, pScreen); if (!(pScreen->PixmapPerDepth[0] = - (*pScreen->CreatePixmap)(pScreen, w, h, 1))) + (*pScreen->CreatePixmap)(pScreen, w, h, 1, 0))) return FALSE; /* fill stipple with 1 */ tmpval[0] = GXcopy; tmpval[1] = 1; tmpval[2] = FillSolid; diff --git a/dix/getevents.c b/dix/getevents.c index c3af27f7e..d3adecea8 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -95,7 +95,14 @@ set_key_up(DeviceIntPtr pDev, int key_code) static Bool key_is_down(DeviceIntPtr pDev, int key_code) { - return pDev->key->postdown[key_code >> 3] >> (key_code & 7); + return !!(pDev->key->postdown[key_code >> 3] & (1 << (key_code & 7))); +} + +static Bool +key_autorepeats(DeviceIntPtr pDev, int key_code) +{ + return !!(pDev->kbdfeed->ctrl.autoRepeats[key_code >> 3] & + (1 << (key_code & 7))); } /** @@ -444,10 +451,11 @@ GetKeyboardValuatorEvents(xEvent *events, DeviceIntPtr pDev, int type, * FIXME: In theory, if you're repeating with two keyboards in non-XKB, * you could get unbalanced events here. */ if (type == KeyPress && key_is_down(pDev, key_code)) { + /* If autorepeating is disabled either globally or just for that key, + * or we have a modifier, don't generate a repeat event. */ if (!pDev->kbdfeed->ctrl.autoRepeat || - pDev->key->modifierMap[key_code] || - !(pDev->kbdfeed->ctrl.autoRepeats[key_code >> 3] - & (1 << (key_code & 7)))) + !key_autorepeats(pDev, key_code) || + pDev->key->modifierMap[key_code]) return 0; #ifdef XKB diff --git a/dix/globals.c b/dix/globals.c index f86c6026d..d76b604da 100644 --- a/dix/globals.c +++ b/dix/globals.c @@ -136,7 +136,6 @@ Bool screenSaverSuspended = FALSE; char *defaultFontPath = COMPILEDDEFAULTFONTPATH; char *defaultTextFont = COMPILEDDEFAULTFONT; char *defaultCursorFont = COMPILEDCURSORFONT; -char *rgbPath = RGB_DB; char *defaultDisplayClass = COMPILEDDISPLAYCLASS; FontPtr defaultFont; /* not declared in dix.h to avoid including font.h in every compilation of dix code */ diff --git a/dix/glyphcurs.c b/dix/glyphcurs.c index 70b1ff8f7..905b5fb13 100644 --- a/dix/glyphcurs.c +++ b/dix/glyphcurs.c @@ -98,7 +98,8 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm, unsigned cha bzero(pbits, nby); ppix = (PixmapPtr)(*pScreen->CreatePixmap)(pScreen, cm->width, - cm->height, 1); + cm->height, 1, + CREATE_PIXMAP_USAGE_SCRATCH); pGC = GetScratchGC(1, pScreen); if (!ppix || !pGC) { diff --git a/dix/grabs.c b/dix/grabs.c index a42a46f10..85e101c6a 100644 --- a/dix/grabs.c +++ b/dix/grabs.c @@ -378,16 +378,16 @@ DeletePassiveGrabFromList(GrabPtr pMinuendGrab) i++; if (!i) return TRUE; - deletes = (GrabPtr *)ALLOCATE_LOCAL(i * sizeof(GrabPtr)); - adds = (GrabPtr *)ALLOCATE_LOCAL(i * sizeof(GrabPtr)); - updates = (Mask ***)ALLOCATE_LOCAL(i * sizeof(Mask **)); - details = (Mask **)ALLOCATE_LOCAL(i * sizeof(Mask *)); + deletes = (GrabPtr *)xalloc(i * sizeof(GrabPtr)); + adds = (GrabPtr *)xalloc(i * sizeof(GrabPtr)); + updates = (Mask ***)xalloc(i * sizeof(Mask **)); + details = (Mask **)xalloc(i * sizeof(Mask *)); if (!deletes || !adds || !updates || !details) { - if (details) DEALLOCATE_LOCAL(details); - if (updates) DEALLOCATE_LOCAL(updates); - if (adds) DEALLOCATE_LOCAL(adds); - if (deletes) DEALLOCATE_LOCAL(deletes); + if (details) xfree(details); + if (updates) xfree(updates); + if (adds) xfree(adds); + if (deletes) xfree(deletes); return FALSE; } ndels = nadds = nups = 0; @@ -482,10 +482,10 @@ DeletePassiveGrabFromList(GrabPtr pMinuendGrab) *updates[i] = details[i]; } } - DEALLOCATE_LOCAL(details); - DEALLOCATE_LOCAL(updates); - DEALLOCATE_LOCAL(adds); - DEALLOCATE_LOCAL(deletes); + xfree(details); + xfree(updates); + xfree(adds); + xfree(deletes); return ok; #undef UPDATE diff --git a/dix/main.c b/dix/main.c index ca0028a39..543e94c86 100644 --- a/dix/main.c +++ b/dix/main.c @@ -440,6 +440,8 @@ main(int argc, char *argv[], char *envp[]) } } + NotifyParentProcess(); + Dispatch(); /* Now free up whatever must be freed */ diff --git a/dix/pixmap.c b/dix/pixmap.c index 6096cc6b5..82e388cf3 100644 --- a/dix/pixmap.c +++ b/dix/pixmap.c @@ -59,7 +59,7 @@ GetScratchPixmapHeader(ScreenPtr pScreen, int width, int height, int depth, pScreen->pScratchPixmap = NULL; else /* width and height of 0 means don't allocate any pixmap data */ - pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, depth); + pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, depth, 0); if (pPixmap) { if ((*pScreen->ModifyPixmapHeader)(pPixmap, width, height, depth, diff --git a/dix/property.c b/dix/property.c index 713507a09..3c0eaf1c9 100644 --- a/dix/property.c +++ b/dix/property.c @@ -135,31 +135,31 @@ ProcRotateProperties(ClientPtr client) if (!stuff->nAtoms) return(Success); atoms = (Atom *) & stuff[1]; - props = (PropertyPtr *)ALLOCATE_LOCAL(stuff->nAtoms * sizeof(PropertyPtr)); + props = (PropertyPtr *)xalloc(stuff->nAtoms * sizeof(PropertyPtr)); if (!props) return(BadAlloc); for (i = 0; i < stuff->nAtoms; i++) { if (!ValidAtom(atoms[i])) { - DEALLOCATE_LOCAL(props); + xfree(props); client->errorValue = atoms[i]; return BadAtom; } for (j = i + 1; j < stuff->nAtoms; j++) if (atoms[j] == atoms[i]) { - DEALLOCATE_LOCAL(props); + xfree(props); return BadMatch; } pProp = FindProperty(pWin, atoms[i]); if (!pProp) { - DEALLOCATE_LOCAL(props); + xfree(props); return BadMatch; } rc = XaceHook(XACE_PROPERTY_ACCESS, client, pWin, pProp, DixReadAccess|DixWriteAccess); if (rc != Success) { - DEALLOCATE_LOCAL(props); + xfree(props); client->errorValue = atoms[i]; return rc; } @@ -182,7 +182,7 @@ ProcRotateProperties(ClientPtr client) props[i]->propertyName = atoms[(i + delta) % stuff->nAtoms]; } } - DEALLOCATE_LOCAL(props); + xfree(props); return Success; } @@ -600,7 +600,7 @@ ProcListProperties(ClientPtr client) numProps++; } if (numProps) - if(!(pAtoms = (Atom *)ALLOCATE_LOCAL(numProps * sizeof(Atom)))) + if(!(pAtoms = (Atom *)xalloc(numProps * sizeof(Atom)))) return(BadAlloc); xlpr.type = X_Reply; @@ -619,7 +619,7 @@ ProcListProperties(ClientPtr client) { client->pSwapReplyFunc = (ReplySwapPtr)Swap32Write; WriteSwappedDataToClient(client, numProps * sizeof(Atom), pAtoms); - DEALLOCATE_LOCAL(pAtoms); + xfree(pAtoms); } return(client->noClientException); } diff --git a/dix/resource.c b/dix/resource.c index 857776dc5..6c1b04dc7 100644 --- a/dix/resource.c +++ b/dix/resource.c @@ -492,13 +492,13 @@ RebuildTable(int client) */ j = 2 * clientTable[client].buckets; - tails = (ResourcePtr **)ALLOCATE_LOCAL(j * sizeof(ResourcePtr *)); + tails = (ResourcePtr **)xalloc(j * sizeof(ResourcePtr *)); if (!tails) return; resources = (ResourcePtr *)xalloc(j * sizeof(ResourcePtr)); if (!resources) { - DEALLOCATE_LOCAL(tails); + xfree(tails); return; } for (rptr = resources, tptr = tails; --j >= 0; rptr++, tptr++) @@ -521,7 +521,7 @@ RebuildTable(int client) *tptr = &res->next; } } - DEALLOCATE_LOCAL(tails); + xfree(tails); clientTable[client].buckets *= 2; xfree(clientTable[client].resources); clientTable[client].resources = resources; diff --git a/dix/swaprep.c b/dix/swaprep.c index 7d3251ae3..91469e17b 100644 --- a/dix/swaprep.c +++ b/dix/swaprep.c @@ -101,7 +101,7 @@ CopySwap32Write(ClientPtr pClient, int size, CARD32 *pbuf) CARD32 tmpbuf[1]; /* Allocate as big a buffer as we can... */ - while (!(pbufT = (CARD32 *) ALLOCATE_LOCAL(bufsize))) + while (!(pbufT = (CARD32 *) xalloc(bufsize))) { bufsize >>= 1; if (bufsize == 4) @@ -133,7 +133,7 @@ CopySwap32Write(ClientPtr pClient, int size, CARD32 *pbuf) } if (pbufT != tmpbuf) - DEALLOCATE_LOCAL ((char *) pbufT); + xfree ((char *) pbufT); } /** @@ -149,7 +149,7 @@ CopySwap16Write(ClientPtr pClient, int size, short *pbuf) short tmpbuf[2]; /* Allocate as big a buffer as we can... */ - while (!(pbufT = (short *) ALLOCATE_LOCAL(bufsize))) + while (!(pbufT = (short *) xalloc(bufsize))) { bufsize >>= 1; if (bufsize == 4) @@ -181,7 +181,7 @@ CopySwap16Write(ClientPtr pClient, int size, short *pbuf) } if (pbufT != tmpbuf) - DEALLOCATE_LOCAL ((char *) pbufT); + xfree ((char *) pbufT); } @@ -1267,7 +1267,7 @@ WriteSConnectionInfo(ClientPtr pClient, unsigned long size, char *pInfo) { char *pInfoTBase; - pInfoTBase = (char *) ALLOCATE_LOCAL(size); + pInfoTBase = (char *) xalloc(size); if (!pInfoTBase) { pClient->noClientException = -1; @@ -1275,7 +1275,7 @@ WriteSConnectionInfo(ClientPtr pClient, unsigned long size, char *pInfo) } SwapConnSetupInfo(pInfo, pInfoTBase); (void)WriteToClient(pClient, (int)size, (char *) pInfoTBase); - DEALLOCATE_LOCAL(pInfoTBase); + xfree(pInfoTBase); } _X_EXPORT void diff --git a/dix/window.c b/dix/window.c index 17ab2a7a3..f183aa3b7 100644 --- a/dix/window.c +++ b/dix/window.c @@ -313,7 +313,7 @@ MakeRootTile(WindowPtr pWin) int i, j; pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4, - pScreen->rootDepth); + pScreen->rootDepth, 0); pWin->backgroundState = BackgroundPixmap; pGC = GetScratchGC(pScreen->rootDepth, pScreen); @@ -233,7 +233,8 @@ exaLog2(int val) * for scratch pixmaps, or to represent the visible screen. */ static PixmapPtr -exaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth) +exaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth, + unsigned usage_hint) { PixmapPtr pPixmap; ExaPixmapPrivPtr pExaPixmap; @@ -245,10 +246,10 @@ exaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth) return NullPixmap; if (!pExaScr->info->CreatePixmap) { - pPixmap = fbCreatePixmap (pScreen, w, h, depth); + pPixmap = fbCreatePixmap (pScreen, w, h, depth, usage_hint); } else { driver_alloc = 1; - pPixmap = fbCreatePixmap(pScreen, 0, 0, depth); + pPixmap = fbCreatePixmap(pScreen, 0, 0, depth, usage_hint); } if (!pPixmap) diff --git a/exa/exa_accel.c b/exa/exa_accel.c index 5fb72d71b..ae951ed9a 100644 --- a/exa/exa_accel.c +++ b/exa/exa_accel.c @@ -497,7 +497,7 @@ exaCopyNtoN (DrawablePtr pSrcDrawable, if (!pGC || !exaGCReadsDestination(pDstDrawable, pGC->planemask, pGC->fillStyle, pGC->alu)) { - xRectangle *rects = ALLOCATE_LOCAL(nbox * sizeof(xRectangle)); + xRectangle *rects = xalloc(nbox * sizeof(xRectangle)); if (rects) { int i; @@ -510,7 +510,7 @@ exaCopyNtoN (DrawablePtr pSrcDrawable, } region = RECTS_TO_REGION(pScreen, nbox, rects, CT_YXBANDED); - DEALLOCATE_LOCAL(rects); + xfree(rects); } } @@ -619,7 +619,7 @@ exaPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, return; } - prect = ALLOCATE_LOCAL(sizeof(xRectangle) * npt); + prect = xalloc(sizeof(xRectangle) * npt); for (i = 0; i < npt; i++) { prect[i].x = ppt[i].x; prect[i].y = ppt[i].y; @@ -631,7 +631,7 @@ exaPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, prect[i].height = 1; } pGC->ops->PolyFillRect(pDrawable, pGC, npt, prect); - DEALLOCATE_LOCAL(prect); + xfree(prect); } /** @@ -654,7 +654,7 @@ exaPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, return; } - prect = ALLOCATE_LOCAL(sizeof(xRectangle) * (npt - 1)); + prect = xalloc(sizeof(xRectangle) * (npt - 1)); x1 = ppt[0].x; y1 = ppt[0].y; /* If we have any non-horizontal/vertical, fall back. */ @@ -668,7 +668,7 @@ exaPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, } if (x1 != x2 && y1 != y2) { - DEALLOCATE_LOCAL(prect); + xfree(prect); ExaCheckPolylines(pDrawable, pGC, mode, npt, ppt); return; } @@ -692,7 +692,7 @@ exaPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, y1 = y2; } pGC->ops->PolyFillRect(pDrawable, pGC, npt - 1, prect); - DEALLOCATE_LOCAL(prect); + xfree(prect); } /** @@ -723,7 +723,7 @@ exaPolySegment (DrawablePtr pDrawable, GCPtr pGC, int nseg, } } - prect = ALLOCATE_LOCAL(sizeof(xRectangle) * nseg); + prect = xalloc(sizeof(xRectangle) * nseg); for (i = 0; i < nseg; i++) { if (pSeg[i].x1 < pSeg[i].x2) { prect[i].x = pSeg[i].x1; @@ -741,7 +741,7 @@ exaPolySegment (DrawablePtr pDrawable, GCPtr pGC, int nseg, } } pGC->ops->PolyFillRect(pDrawable, pGC, nseg, prect); - DEALLOCATE_LOCAL(prect); + xfree(prect); } static Bool exaFillRegionSolid (DrawablePtr pDrawable, RegionPtr pRegion, diff --git a/exa/exa_render.c b/exa/exa_render.c index 6a9e53f3e..a510e54f6 100644 --- a/exa/exa_render.c +++ b/exa/exa_render.c @@ -774,7 +774,7 @@ exaCreateAlphaPicture (ScreenPtr pScreen, } pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, - pPictFormat->depth); + pPictFormat->depth, 0); if (!pPixmap) return 0; pGC = GetScratchGC (pPixmap->drawable.depth, pScreen); @@ -1621,7 +1621,8 @@ PixmapPtr fbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp); PixmapPtr -fbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth); +fbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth, + unsigned usage_hint); Bool fbDestroyPixmap (PixmapPtr pPixmap); diff --git a/fb/fbcopy.c b/fb/fbcopy.c index 68f403f3f..b8b0b6a8c 100644 --- a/fb/fbcopy.c +++ b/fb/fbcopy.c @@ -326,7 +326,7 @@ fbCopyRegion (DrawablePtr pSrcDrawable, if (nbox > 1) { /* keep ordering in each band, reverse order of bands */ - pboxNew1 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); + pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); if(!pboxNew1) return; pboxBase = pboxNext = pbox+nbox-1; @@ -363,11 +363,11 @@ fbCopyRegion (DrawablePtr pSrcDrawable, if (nbox > 1) { /* reverse order of rects in each band */ - pboxNew2 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); + pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); if(!pboxNew2) { if (pboxNew1) - DEALLOCATE_LOCAL(pboxNew1); + xfree(pboxNew1); return; } pboxBase = pboxNext = pbox; @@ -402,9 +402,9 @@ fbCopyRegion (DrawablePtr pSrcDrawable, reverse, upsidedown, bitPlane, closure); if (pboxNew1) - DEALLOCATE_LOCAL (pboxNew1); + xfree (pboxNew1); if (pboxNew2) - DEALLOCATE_LOCAL (pboxNew2); + xfree (pboxNew2); } RegionPtr diff --git a/fb/fboverlay.c b/fb/fboverlay.c index 6d21362af..f9f7c52a3 100644 --- a/fb/fboverlay.c +++ b/fb/fboverlay.c @@ -136,7 +136,7 @@ fbOverlayCreateScreenResources(ScreenPtr pScreen) pbits = pScrPriv->layer[i].u.init.pbits; width = pScrPriv->layer[i].u.init.width; depth = pScrPriv->layer[i].u.init.depth; - pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, depth); + pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, depth, 0); if (!pPixmap) return FALSE; if (!(*pScreen->ModifyPixmapHeader)(pPixmap, pScreen->width, diff --git a/fb/fbpixmap.c b/fb/fbpixmap.c index cd8cbcd5d..d097bb7d0 100644 --- a/fb/fbpixmap.c +++ b/fb/fbpixmap.c @@ -80,7 +80,8 @@ fbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp) } PixmapPtr -fbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth) +fbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth, + unsigned usage_hint) { int bpp; bpp = BitsPerPixel (depth); diff --git a/fb/fbpseudocolor.c b/fb/fbpseudocolor.c index 3f10faaa3..06cf15992 100644 --- a/fb/fbpseudocolor.c +++ b/fb/fbpseudocolor.c @@ -272,7 +272,7 @@ xxCreateScreenResources(ScreenPtr pScreen) * (BitsPerPixel(depth) >> 3)); if (!pBits) return FALSE; - pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, depth); + pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, depth, 0); if (!pPixmap) { xfree(pBits); return FALSE; @@ -491,7 +491,7 @@ xxStoreColors(ColormapPtr pmap, int nColors, xColorItem *pColors) DBG("StoreColors\n"); - expanddefs = ALLOCATE_LOCAL(sizeof(xColorItem) + expanddefs = xalloc(sizeof(xColorItem) * (1 << pScrPriv->myDepth)); if (!expanddefs) return; @@ -518,7 +518,7 @@ xxStoreColors(ColormapPtr pmap, int nColors, xColorItem *pColors) pColors++; } - DEALLOCATE_LOCAL(expanddefs); + xfree(expanddefs); pCmapPriv->dirty = TRUE; pScrPriv->colormapDirty = TRUE; @@ -556,9 +556,9 @@ xxInstallColormap(ColormapPtr pmap) wrap(pScrPriv,pmap->pScreen,InstallColormap,xxInstallColormap); } - pixels = ALLOCATE_LOCAL(sizeof(Pixel) * (1 << pScrPriv->myDepth)); - colors = ALLOCATE_LOCAL(sizeof(xrgb) * (1 << pScrPriv->myDepth)); - defs = ALLOCATE_LOCAL(sizeof(xColorItem) * (1 << pScrPriv->myDepth)); + pixels = xalloc(sizeof(Pixel) * (1 << pScrPriv->myDepth)); + colors = xalloc(sizeof(xrgb) * (1 << pScrPriv->myDepth)); + defs = xalloc(sizeof(xColorItem) * (1 << pScrPriv->myDepth)); if (!pixels || !colors) return; @@ -586,9 +586,9 @@ xxInstallColormap(ColormapPtr pmap) } xxStoreColors(pmap,(1 << pScrPriv->myDepth),defs); - DEALLOCATE_LOCAL(pixels); - DEALLOCATE_LOCAL(colors); - DEALLOCATE_LOCAL(defs); + xfree(pixels); + xfree(colors); + xfree(defs); return; } diff --git a/hw/darwin/XDarwin.man b/hw/darwin/XDarwin.man index eb1b9dcb8..6fc9aec0f 100644 --- a/hw/darwin/XDarwin.man +++ b/hw/darwin/XDarwin.man @@ -1,5 +1,3 @@ -.\" $XFree86: xc/programs/Xserver/hw/darwin/XDarwin.man,v 1.3 2001/09/23 23:02:37 torrey Exp $ -.\" .TH XDARWIN 1 __vendorversion__ .SH NAME XDarwin \- X window system server for Darwin operating system diff --git a/hw/darwin/apple/X11.icns b/hw/darwin/apple/X11.icns Binary files differindex 4c4717726..d770e617d 100644 --- a/hw/darwin/apple/X11.icns +++ b/hw/darwin/apple/X11.icns diff --git a/hw/darwin/apple/X11Application.h b/hw/darwin/apple/X11Application.h index eb205a1cd..861565798 100644 --- a/hw/darwin/apple/X11Application.h +++ b/hw/darwin/apple/X11Application.h @@ -79,7 +79,7 @@ extern void X11ApplicationMain (int argc, const char *argv[], extern int X11EnableKeyEquivalents; extern int quartzHasRoot, quartzEnableRootless; -#define APP_PREFS "org.x.x11" +#define APP_PREFS "org.x.X11" #define PREFS_APPSMENU "apps_menu" #define PREFS_FAKEBUTTONS "enable_fake_buttons" diff --git a/hw/darwin/apple/X11Application.m b/hw/darwin/apple/X11Application.m index 41cf425c6..6b235ad0b 100644 --- a/hw/darwin/apple/X11Application.m +++ b/hw/darwin/apple/X11Application.m @@ -45,7 +45,7 @@ #include <unistd.h> #include <pthread.h> -#define DEFAULTS_FILE "/usr/X11/lib/X11xserver/Xquartz.plist" +#define DEFAULTS_FILE "/usr/X11/lib/X11/xserver/Xquartz.plist" int X11EnableKeyEquivalents = TRUE; int quartzHasRoot = FALSE, quartzEnableRootless = TRUE; @@ -311,6 +311,7 @@ static void message_kit_thread (SEL selector, NSObject *arg) { [NSApp activateIgnoringOtherApps:YES]; if ([self modalWindow] == nil) [self activateX:YES]; + QuartzMessageServerThread(kXDarwinBringAllToFront, 0); } - (void) set_can_quit:(NSNumber *)state { diff --git a/hw/darwin/apple/X11Controller.m b/hw/darwin/apple/X11Controller.m index acac313f4..fbc9c7402 100644 --- a/hw/darwin/apple/X11Controller.m +++ b/hw/darwin/apple/X11Controller.m @@ -1,5 +1,4 @@ /* X11Controller.m -- connect the IB ui, also the NSApp delegate - $Id: X11Controller.m,v 1.40 2006/09/06 21:19:32 jharper Exp $ Copyright (c) 2002-2007 Apple Inc. All rights reserved. @@ -294,26 +293,17 @@ - (void) launch_client:(NSString *)filename { const char *command = [filename UTF8String]; - const char *shell; - const char *argv[5]; + const char *argv[7]; int child1, child2 = 0; int status; - /* this old code doesn't work with csh ... - shell = getenv("SHELL"); - if (shell == NULL) shell = "/bin/bash"; - - argv[0] = shell; - argv[1] = "-l"; - argv[2] = "-c"; - argv[3] = command; - argv[4] = NULL; - ... but the new code doesn't work with spaces in a command :( - */ - argv[0] = "/usr/bin/login"; argv[1] = "-fp"; argv[2] = getlogin(); + argv[3] = "/bin/sh"; + argv[4] = "-c"; + argv[5] = command; + argv[6] = NULL; /* Do the fork-twice trick to avoid having to reap zombies */ diff --git a/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp b/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp index 1113b8ae6..4b8e6f5cb 100644 --- a/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp +++ b/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp @@ -1,5 +1,3 @@ -<!-- $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp,v 1.2 2001/11/04 07:02:28 torrey Exp $ --> - <html> <head> <title>XDarwin Help</title> diff --git a/hw/darwin/bundle/English.lproj/InfoPlist.strings.cpp b/hw/darwin/bundle/English.lproj/InfoPlist.strings.cpp index aeb210342..268b80091 100644 --- a/hw/darwin/bundle/English.lproj/InfoPlist.strings.cpp +++ b/hw/darwin/bundle/English.lproj/InfoPlist.strings.cpp @@ -1,5 +1,4 @@ /* English versions of the Info.plist keys; used by most localizations. */ /* Most of these are set in the target application settings. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/InfoPlist.strings.cpp,v 1.3 2002/07/17 01:24:55 torrey Exp $ */ NSHumanReadableCopyright = __quote__ X_VENDOR_NAME X_VERSION __quote__; diff --git a/hw/darwin/bundle/English.lproj/Localizable.strings b/hw/darwin/bundle/English.lproj/Localizable.strings index 2c25c1dc3..6f6487902 100644 --- a/hw/darwin/bundle/English.lproj/Localizable.strings +++ b/hw/darwin/bundle/English.lproj/Localizable.strings @@ -1,5 +1,4 @@ /* English localized versions of strings used by the Mac OS X front end. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/Localizable.strings,v 1.3 2002/01/30 06:50:46 torrey Exp $ */ /* Title of alert panel */ "Quit X server?" = "Quit X server?"; diff --git a/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp b/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp index 5996285ae..db33670d9 100644 --- a/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp +++ b/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp @@ -1,5 +1,3 @@ -<!-- $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp,v 1.1 2001/05/21 01:42:17 torrey Exp $ --> - <html> <head> <title>XDarwin Help</title> diff --git a/hw/darwin/bundle/French.lproj/XDarwinHelp.html.cpp b/hw/darwin/bundle/French.lproj/XDarwinHelp.html.cpp index 2a14793db..512416b1b 100644 --- a/hw/darwin/bundle/French.lproj/XDarwinHelp.html.cpp +++ b/hw/darwin/bundle/French.lproj/XDarwinHelp.html.cpp @@ -1,5 +1,3 @@ -<!-- $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp,v 1.2 2001/11/04 07:02:28 torrey Exp $ --> - <html> <head><META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1"> <title>XDarwin Help</title> diff --git a/hw/darwin/bundle/German.lproj/XDarwinHelp.html.cpp b/hw/darwin/bundle/German.lproj/XDarwinHelp.html.cpp index 5996285ae..db33670d9 100644 --- a/hw/darwin/bundle/German.lproj/XDarwinHelp.html.cpp +++ b/hw/darwin/bundle/German.lproj/XDarwinHelp.html.cpp @@ -1,5 +1,3 @@ -<!-- $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp,v 1.1 2001/05/21 01:42:17 torrey Exp $ --> - <html> <head> <title>XDarwin Help</title> diff --git a/hw/darwin/bundle/Portuguese.lproj/XDarwinHelp.html.cpp b/hw/darwin/bundle/Portuguese.lproj/XDarwinHelp.html.cpp index 7ef1ba5d8..6800171d9 100644 --- a/hw/darwin/bundle/Portuguese.lproj/XDarwinHelp.html.cpp +++ b/hw/darwin/bundle/Portuguese.lproj/XDarwinHelp.html.cpp @@ -1,5 +1,3 @@ -<!-- $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp,v 1.2 2001/11/04 07:02:28 torrey Exp $ --><html><body> - <head> <title>XDarwin Help</title> </head> diff --git a/hw/darwin/bundle/Spanish.lproj/XDarwinHelp.html.cpp b/hw/darwin/bundle/Spanish.lproj/XDarwinHelp.html.cpp index 5cd27862d..a79e6f95f 100644 --- a/hw/darwin/bundle/Spanish.lproj/XDarwinHelp.html.cpp +++ b/hw/darwin/bundle/Spanish.lproj/XDarwinHelp.html.cpp @@ -1,5 +1,3 @@ -<!-- $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp,v 1.2 2001/11/04 07:02:28 torrey Exp $ --> - <html> <head> <title>XDarwin Ayuda</title> diff --git a/hw/darwin/bundle/Swedish.lproj/XDarwinHelp.html.cpp b/hw/darwin/bundle/Swedish.lproj/XDarwinHelp.html.cpp index 4210878c0..ab940ec3d 100644 --- a/hw/darwin/bundle/Swedish.lproj/XDarwinHelp.html.cpp +++ b/hw/darwin/bundle/Swedish.lproj/XDarwinHelp.html.cpp @@ -1,5 +1,3 @@ -<!-- $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp,v 1.2 2001/11/04 07:02:28 torrey Exp $ --> - <html> <head> <title>XDarwin Help</title> diff --git a/hw/darwin/bundle/ko.lproj/XDarwinHelp.html.cpp b/hw/darwin/bundle/ko.lproj/XDarwinHelp.html.cpp index 5996285ae..db33670d9 100644 --- a/hw/darwin/bundle/ko.lproj/XDarwinHelp.html.cpp +++ b/hw/darwin/bundle/ko.lproj/XDarwinHelp.html.cpp @@ -1,5 +1,3 @@ -<!-- $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/XDarwinHelp.html.cpp,v 1.1 2001/05/21 01:42:17 torrey Exp $ --> - <html> <head> <title>XDarwin Help</title> diff --git a/hw/darwin/bundle/startXClients.cpp b/hw/darwin/bundle/startXClients.cpp index 51cdb5c9e..f812dbfd8 100644 --- a/hw/darwin/bundle/startXClients.cpp +++ b/hw/darwin/bundle/startXClients.cpp @@ -2,8 +2,6 @@ XCOMM!/bin/sh XCOMM This script is used by XDarwin to start X clients when XDarwin is XCOMM launched from the Finder. -XCOMM -XCOMM $XFree86: $ userclientrc=$HOME/.xinitrc sysclientrc=XINITDIR/xinitrc diff --git a/hw/darwin/darwin.c b/hw/darwin/darwin.c index 1c18cd2ac..c32cd5461 100644 --- a/hw/darwin/darwin.c +++ b/hw/darwin/darwin.c @@ -3,8 +3,6 @@ * Shared code for the Darwin X Server * running with Quartz or IOKit display mode * - **************************************************************/ -/* * Copyright (c) 2001-2004 Torrey T. Lyons. All Rights Reserved. * Copyright (c) 2007 Apple Inc. * diff --git a/hw/darwin/darwin.h b/hw/darwin/darwin.h index 20f45be93..77657460c 100644 --- a/hw/darwin/darwin.h +++ b/hw/darwin/darwin.h @@ -141,6 +141,7 @@ enum { kXDarwinQuit, // kill the X server and release the display kXDarwinReadPasteboard, // copy Mac OS X pasteboard into X cut buffer kXDarwinWritePasteboard, // copy X cut buffer onto Mac OS X pasteboard + kXDarwinBringAllToFront, // bring all X windows to front /* * AppleWM events */ diff --git a/hw/darwin/quartz/Preferences.m b/hw/darwin/quartz/Preferences.m index 6fca3b655..0425392ae 100644 --- a/hw/darwin/quartz/Preferences.m +++ b/hw/darwin/quartz/Preferences.m @@ -30,7 +30,6 @@ * sale, use or other dealings in this Software without prior written * authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/Preferences.m,v 1.5 2004/06/08 22:58:10 torrey Exp $ */ #include <dix-config.h> diff --git a/hw/darwin/quartz/XApplication.m b/hw/darwin/quartz/XApplication.m index e0ee8d9c6..c18d9a570 100644 --- a/hw/darwin/quartz/XApplication.m +++ b/hw/darwin/quartz/XApplication.m @@ -2,7 +2,7 @@ // XApplication.m // // Created by Andreas Monitzer on January 6, 2001. -// + /* * Copyright (c) 2001 Andreas Monitzer. All Rights Reserved. * @@ -30,7 +30,6 @@ * sale, use or other dealings in this Software without prior written * authorization. */ -/* $XFree86: $ */ #import "XApplication.h" diff --git a/hw/darwin/quartz/XDarwinStartup.man b/hw/darwin/quartz/XDarwinStartup.man index 9bf7dfabd..1ad3bbced 100644 --- a/hw/darwin/quartz/XDarwinStartup.man +++ b/hw/darwin/quartz/XDarwinStartup.man @@ -1,4 +1,3 @@ -.\" $XFree86: xc/programs/Xserver/hw/darwin/bundle/XDarwinStartup.man,v 1.1 2002/02/05 19:16:14 torrey Exp $ .TH XDarwinStartup 1 .SH NAME XDarwinStartup - Startup program for the XDarwin X window server diff --git a/hw/darwin/quartz/XServer.m b/hw/darwin/quartz/XServer.m index 14776f888..f8173cb7f 100644 --- a/hw/darwin/quartz/XServer.m +++ b/hw/darwin/quartz/XServer.m @@ -34,7 +34,6 @@ * sale, use or other dealings in this Software without prior written * authorization. */ -/* $XdotOrg: xc/programs/Xserver/hw/darwin/quartz/XServer.m,v 1.3 2004/07/30 19:12:17 torrey Exp $ */ #include <dix-config.h> #include "quartzCommon.h" diff --git a/hw/darwin/quartz/applewm.c b/hw/darwin/quartz/applewm.c index 8b9f1ee81..fecafe8fb 100644 --- a/hw/darwin/quartz/applewm.c +++ b/hw/darwin/quartz/applewm.c @@ -1,6 +1,6 @@ /************************************************************************** -Copyright (c) 2002 Apple Computer, Inc. All Rights Reserved. +Copyright (c) 2002-2007 Apple Inc. All Rights Reserved. Copyright (c) 2003 Torrey T. Lyons. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a diff --git a/hw/darwin/quartz/cr/XView.m b/hw/darwin/quartz/cr/XView.m index 0cea250bb..8379f9476 100644 --- a/hw/darwin/quartz/cr/XView.m +++ b/hw/darwin/quartz/cr/XView.m @@ -29,7 +29,6 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/XView.m,v 1.1 2003/06/07 05:49:07 torrey Exp $ */ #include <dix-config.h> diff --git a/hw/darwin/quartz/cr/crAppleWM.m b/hw/darwin/quartz/cr/crAppleWM.m index a583581dc..a0259c3f8 100644 --- a/hw/darwin/quartz/cr/crAppleWM.m +++ b/hw/darwin/quartz/cr/crAppleWM.m @@ -1,7 +1,6 @@ /* * Cocoa rootless implementation functions for AppleWM extension - */ -/* + * * Copyright (c) 2003 Torrey T. Lyons. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -26,7 +25,6 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c,v 1.2 2003/06/30 01:45:13 torrey Exp $ */ #include <dix-config.h> diff --git a/hw/darwin/quartz/cr/crFrame.m b/hw/darwin/quartz/cr/crFrame.m index 3c1f0bb28..79697fbac 100644 --- a/hw/darwin/quartz/cr/crFrame.m +++ b/hw/darwin/quartz/cr/crFrame.m @@ -1,7 +1,6 @@ /* * Cocoa rootless implementation frame functions - */ -/* + * * Copyright (c) 2001 Greg Parker. All Rights Reserved. * Copyright (c) 2002-2003 Torrey T. Lyons. All Rights Reserved. * @@ -27,7 +26,6 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XdotOrg: xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m,v 1.2 2004/04/23 19:15:51 eich Exp $ */ #include <dix-config.h> diff --git a/hw/darwin/quartz/cr/crScreen.m b/hw/darwin/quartz/cr/crScreen.m index 8c0966578..504e7b37a 100644 --- a/hw/darwin/quartz/cr/crScreen.m +++ b/hw/darwin/quartz/cr/crScreen.m @@ -1,8 +1,6 @@ -/* $XdotOrg: xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m,v 1.4 2004/08/12 20:24:36 torrey Exp $ */ /* * Cocoa rootless implementation initialization - */ -/* + * * Copyright (c) 2001 Greg Parker. All Rights Reserved. * Copyright (c) 2002-2004 Torrey T. Lyons. All Rights Reserved. * @@ -28,7 +26,6 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m,v 1.5 2003/11/12 20:21:52 torrey Exp $ */ #include <dix-config.h> diff --git a/hw/darwin/quartz/fullscreen/quartzCursor.h b/hw/darwin/quartz/fullscreen/quartzCursor.h index 57fac68a5..56a02098d 100644 --- a/hw/darwin/quartz/fullscreen/quartzCursor.h +++ b/hw/darwin/quartz/fullscreen/quartzCursor.h @@ -2,8 +2,7 @@ * quartzCursor.h * * External interface for Quartz hardware cursor - */ -/* + * * Copyright (c) 2001 Torrey T. Lyons and Greg Parker. * All Rights Reserved. * diff --git a/hw/darwin/quartz/keysym2ucs.c b/hw/darwin/quartz/keysym2ucs.c index 3be59df33..8626ebc4e 100644 --- a/hw/darwin/quartz/keysym2ucs.c +++ b/hw/darwin/quartz/keysym2ucs.c @@ -1,4 +1,5 @@ -/* +/* + * * This module converts keysym values into the corresponding ISO 10646 * (UCS, Unicode) values. * diff --git a/hw/darwin/quartz/quartz.c b/hw/darwin/quartz/quartz.c index 2899bc2ca..61a752026 100644 --- a/hw/darwin/quartz/quartz.c +++ b/hw/darwin/quartz/quartz.c @@ -1,9 +1,7 @@ -/************************************************************** +/* * * Quartz-specific support for the Darwin X Server * - **************************************************************/ -/* * Copyright (c) 2001-2004 Greg Parker and Torrey T. Lyons. * All Rights Reserved. * @@ -64,7 +62,7 @@ int quartzServerVisible = TRUE; int quartzServerQuitting = FALSE; DevPrivateKey quartzScreenKey = &quartzScreenKey; int aquaMenuBarHeight = 0; -int noPseudoramiXExtension = TRUE; +int noPseudoramiXExtension = FALSE; QuartzModeProcsPtr quartzProcs = NULL; const char *quartzOpenGLBundle = NULL; @@ -389,11 +387,22 @@ void DarwinModeProcessEvent( QuartzUpdateScreens(); break; - case kXDarwinWindowState: - case kXDarwinWindowMoved: - // FIXME: Not implemented yet + case kXDarwinBringAllToFront: + RootlessOrderAllWindows(); break; + case kXDarwinWindowState: + ErrorF("kXDarwinWindowState\n"); + break; + case kXDarwinWindowMoved: { + WindowPtr pWin = (WindowPtr)xe->u.clientMessage.u.l.longs0; + short x = xe->u.clientMessage.u.l.longs1, + y = xe->u.clientMessage.u.l.longs2; + ErrorF("kXDarwinWindowMoved(%p, %hd, %hd)\n", pWin, x, y); + RootlessMoveWindow(pWin, x, y, pWin->nextSib, VTMove); + } + break; + default: ErrorF("Unknown application defined event type %d.\n", xe->u.u.type); diff --git a/hw/darwin/quartz/quartz.h b/hw/darwin/quartz/quartz.h index f1b36b6b1..fa7499df1 100644 --- a/hw/darwin/quartz/quartz.h +++ b/hw/darwin/quartz/quartz.h @@ -3,8 +3,7 @@ * * External interface of the Quartz display modes seen by the generic, mode * independent parts of the Darwin X server. - */ -/* + * * Copyright (c) 2001-2003 Greg Parker and Torrey T. Lyons. * All Rights Reserved. * diff --git a/hw/darwin/quartz/quartzCocoa.m b/hw/darwin/quartz/quartzCocoa.m index 5bc1501a6..3987cd2c2 100644 --- a/hw/darwin/quartz/quartzCocoa.m +++ b/hw/darwin/quartz/quartzCocoa.m @@ -1,4 +1,3 @@ -/* $XdotOrg: xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m,v 1.2 2004/04/23 19:15:17 eich Exp $ */ /************************************************************** * * Quartz-specific support for the Darwin X Server @@ -7,8 +6,6 @@ * This file is separate from the parts of Quartz support * that use X include files to avoid symbol collisions. * - **************************************************************/ -/* * Copyright (c) 2001-2004 Torrey T. Lyons and Greg Parker. * All Rights Reserved. * @@ -34,7 +31,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m,v 1.5 2004/06/08 22:58:10 torrey Exp $ */ + #include <dix-config.h> #include "quartzCommon.h" @@ -45,14 +42,16 @@ #include <Cocoa/Cocoa.h> +#ifndef INXQUARTZ #import "Preferences.h" +#endif #include "pseudoramiX.h" extern void FatalError(const char *, ...); extern char *display; extern int noPanoramiXExtension; - +#ifndef INXQUARTZ /* * QuartzReadPreferences * Read the user preferences from the Cocoa front end. @@ -98,7 +97,7 @@ void QuartzReadPreferences(void) darwinDesiredDepth = [Preferences depth] - 1; } - +#endif /* * QuartzWriteCocoaPasteboard @@ -163,6 +162,7 @@ char *QuartzReadCocoaPasteboard(void) int QuartzFSUseQDCursor( int depth) // screen depth { +#ifndef INXQUARTZ switch ([Preferences useQDCursor]) { case qdCursor_Always: return TRUE; @@ -174,6 +174,7 @@ int QuartzFSUseQDCursor( else return FALSE; } +#endif return TRUE; } diff --git a/hw/darwin/quartz/quartzCursor.h b/hw/darwin/quartz/quartzCursor.h index 57fac68a5..56a02098d 100644 --- a/hw/darwin/quartz/quartzCursor.h +++ b/hw/darwin/quartz/quartzCursor.h @@ -2,8 +2,7 @@ * quartzCursor.h * * External interface for Quartz hardware cursor - */ -/* + * * Copyright (c) 2001 Torrey T. Lyons and Greg Parker. * All Rights Reserved. * diff --git a/hw/darwin/quartz/quartzKeyboard.c b/hw/darwin/quartz/quartzKeyboard.c index f81ef0abc..b580a8e84 100644 --- a/hw/darwin/quartz/quartzKeyboard.c +++ b/hw/darwin/quartz/quartzKeyboard.c @@ -217,42 +217,41 @@ DarwinModeReadSystemKeymap (darwinKeyboardInfo *info) const void *chr_data = NULL; int num_keycodes = NUM_KEYCODES; UInt32 keyboard_type = 0; - int is_uchr, i, j; + int is_uchr = 1, i, j; OSStatus err; KeySym *k; TISInputSourceRef currentKeyLayoutRef = TISCopyCurrentKeyboardLayoutInputSource(); - if (currentKeyLayoutRef) - { - CFDataRef currentKeyLayoutDataRef = (CFDataRef )TISGetInputSourceProperty(currentKeyLayoutRef, kTISPropertyUnicodeKeyLayoutData); - if (currentKeyLayoutDataRef) - chr_data = CFDataGetBytePtr(currentKeyLayoutDataRef); - } - - if (chr_data != NULL) - { - KLGetCurrentKeyboardLayout (&key_layout); - KLGetKeyboardLayoutProperty (key_layout, kKLuchrData, &chr_data); - - if (chr_data != NULL) + if (currentKeyLayoutRef) { - is_uchr = 1; - keyboard_type = LMGetKbdType (); + CFDataRef currentKeyLayoutDataRef = (CFDataRef )TISGetInputSourceProperty(currentKeyLayoutRef, kTISPropertyUnicodeKeyLayoutData); + if (currentKeyLayoutDataRef) + chr_data = CFDataGetBytePtr(currentKeyLayoutDataRef); + } + + if(chr_data == NULL) { + KLGetCurrentKeyboardLayout (&key_layout); + KLGetKeyboardLayoutProperty (key_layout, kKLuchrData, &chr_data); + + if (chr_data != NULL) + { + is_uchr = 1; + keyboard_type = LMGetKbdType (); + } + else + { + KLGetKeyboardLayoutProperty (key_layout, kKLKCHRData, &chr_data); + + if (chr_data == NULL) + { + ErrorF ( "Couldn't get uchr or kchr resource\n"); + return FALSE; + } + + is_uchr = 0; + num_keycodes = 128; + } } - else - { - KLGetKeyboardLayoutProperty (key_layout, kKLKCHRData, &chr_data); - - if (chr_data == NULL) - { - ErrorF ( "Couldn't get uchr or kchr resource\n"); - return FALSE; - } - - is_uchr = 0; - num_keycodes = 128; - } - } /* Scan the keycode range for the Unicode character that each key produces in the four shift states. Then convert that to @@ -376,8 +375,7 @@ DarwinModeReadSystemKeymap (darwinKeyboardInfo *info) } } } - - if(currentKeyLayoutRef) CFRelease(currentKeyLayoutRef); + if(currentKeyLayoutRef) CFRelease(currentKeyLayoutRef); return TRUE; } diff --git a/hw/darwin/quartz/xpr/dri.c b/hw/darwin/quartz/xpr/dri.c index 22dc21850..379d3c0e9 100644 --- a/hw/darwin/quartz/xpr/dri.c +++ b/hw/darwin/quartz/xpr/dri.c @@ -229,7 +229,7 @@ DRIFinishScreenInit(ScreenPtr pScreen) pDRIPriv->wrap.ClipNotify = pScreen->ClipNotify; pScreen->ClipNotify = DRIClipNotify; - ErrorF("[DRI] screen %d installation complete\n", pScreen->myNum); + // ErrorF("[DRI] screen %d installation complete\n", pScreen->myNum); return TRUE; } diff --git a/hw/darwin/quartz/xpr/xprCursor.c b/hw/darwin/quartz/xpr/xprCursor.c index 776dc005d..e3ae9e977 100644 --- a/hw/darwin/quartz/xpr/xprCursor.c +++ b/hw/darwin/quartz/xpr/xprCursor.c @@ -2,8 +2,6 @@ * * Xplugin cursor support * - **************************************************************/ -/* * Copyright (c) 2001 Torrey T. Lyons and Greg Parker. * Copyright (c) 2002 Apple Computer, Inc. * All Rights Reserved. @@ -83,8 +81,17 @@ load_cursor(CursorPtr src, int screen) #ifdef ARGB_CURSOR if (src->bits->argb != NULL) { - rowbytes = src->bits->width * sizeof(CARD32); +#if BITMAP_BIT_ORDER == MSBFirst + rowbytes = src->bits->width * sizeof (CARD32); data = (uint32_t *) src->bits->argb; +#else + const uint32_t *be_data=(uint32_t *) src->bits->argb; + unsigned i; + rowbytes = src->bits->width * sizeof (CARD32); + data=alloca (rowbytes * src->bits->height); + for(i=0;i<(src->bits->width*src->bits->height);i++) + data[i]=ntohl(be_data[i]); +#endif } else #endif diff --git a/hw/darwin/quartz/xpr/xprFrame.c b/hw/darwin/quartz/xpr/xprFrame.c index c5b84f08b..0d12bf9ef 100644 --- a/hw/darwin/quartz/xpr/xprFrame.c +++ b/hw/darwin/quartz/xpr/xprFrame.c @@ -1,7 +1,6 @@ /* * Xplugin rootless implementation frame functions - */ -/* + * * Copyright (c) 2002 Apple Computer, Inc. All rights reserved. * Copyright (c) 2003 Torrey T. Lyons. All Rights Reserved. * @@ -411,7 +410,7 @@ xprInit(ScreenPtr pScreen) * Given the id of a physical window, try to find the top-level (or root) * X window that it represents. */ -static WindowPtr +WindowPtr xprGetXWindow(xp_window_id wid) { RootlessWindowRec *winRec; diff --git a/hw/darwin/quartz/xpr/xprScreen.c b/hw/darwin/quartz/xpr/xprScreen.c index b0ddece3f..709e6e8cc 100644 --- a/hw/darwin/quartz/xpr/xprScreen.c +++ b/hw/darwin/quartz/xpr/xprScreen.c @@ -1,7 +1,6 @@ /* * Xplugin rootless implementation screen functions - */ -/* + * * Copyright (c) 2002 Apple Computer, Inc. All Rights Reserved. * Copyright (c) 2004 Torrey T. Lyons. All Rights Reserved. * @@ -46,6 +45,10 @@ # include "damage.h" #endif +/* 10.4's deferred update makes X slower.. have to live with the tearing + for now.. */ +#define XP_NO_DEFERRED_UPDATES 8 + // Name of GLX bundle for native OpenGL static const char *xprOpenGLBundle = "glxCGL.bundle"; @@ -60,10 +63,12 @@ eventHandler(unsigned int type, const void *arg, switch (type) { case XP_EVENT_DISPLAY_CHANGED: + // ErrorF("XP_EVENT_DISPLAY_MOVED\n"); QuartzMessageServerThread(kXDarwinDisplayChanged, 0); break; case XP_EVENT_WINDOW_STATE_CHANGED: + // ErrorF("XP_EVENT_WINDOW_STATE_CHANGED\n"); if (arg_size >= sizeof(xp_window_state_event)) { const xp_window_state_event *ws_arg = arg; @@ -74,16 +79,24 @@ eventHandler(unsigned int type, const void *arg, break; case XP_EVENT_WINDOW_MOVED: + // ErrorF("XP_EVENT_WINDOW_MOVED\n"); if (arg_size == sizeof(xp_window_id)) { xp_window_id id = * (xp_window_id *) arg; - - QuartzMessageServerThread(kXDarwinWindowMoved, 1, id); + WindowPtr pWin = xprGetXWindow(id); + BoxRec box; + xp_error retval = xp_get_window_bounds(id, &box); + if (retval != Success) { + ErrorF("Unable to find new bounds for window\n"); + break; + } + QuartzMessageServerThread(kXDarwinWindowMoved, 3, pWin, box.x1, box.y1); } break; case XP_EVENT_SURFACE_DESTROYED: case XP_EVENT_SURFACE_CHANGED: + // ErrorF("XP_EVENT_SURFACE_MOVED\n"); if (arg_size == sizeof(xp_surface_id)) { int kind; @@ -177,15 +190,15 @@ xprAddPseudoramiXScreens(int *x, int *y, int *width, int *height) frame = displayScreenBounds(dpy); - ErrorF("PseudoramiX screen %d added: %dx%d @ (%d,%d).\n", i, + /* ErrorF("PseudoramiX screen %d added: %dx%d @ (%d,%d).\n", i, (int)frame.size.width, (int)frame.size.height, - (int)frame.origin.x, (int)frame.origin.y); + (int)frame.origin.x, (int)frame.origin.y); */ frame.origin.x -= unionRect.origin.x; frame.origin.y -= unionRect.origin.y; - ErrorF("PseudoramiX screen %d placed at X11 coordinate (%d,%d).\n", - i, (int)frame.origin.x, (int)frame.origin.y); + /* ErrorF("PseudoramiX screen %d placed at X11 coordinate (%d,%d).\n", + i, (int)frame.origin.x, (int)frame.origin.y); */ PseudoramiXAddScreen(frame.origin.x, frame.origin.y, frame.size.width, frame.size.height); @@ -203,7 +216,7 @@ xprDisplayInit(void) { CGDisplayCount displayCount; - ErrorF("Display mode: Rootless Quartz -- Xplugin implementation\n"); + // ErrorF("Display mode: Rootless Quartz -- Xplugin implementation\n"); CGGetActiveDisplayList(0, NULL, &displayCount); diff --git a/hw/dmx/dmx-config.h b/hw/dmx/dmx-config.h index 18a05356b..343fdabf5 100644 --- a/hw/dmx/dmx-config.h +++ b/hw/dmx/dmx-config.h @@ -83,9 +83,7 @@ #undef XF86MISC #undef XFreeXDGA #undef XF86DRI -#undef MITSHM #undef TOGCUP -#undef DPSEXT #undef MITMISC #undef SCREENSAVER #undef RANDR diff --git a/hw/dmx/dmx.c b/hw/dmx/dmx.c index a4d6beb08..840356f02 100644 --- a/hw/dmx/dmx.c +++ b/hw/dmx/dmx.c @@ -464,7 +464,7 @@ static int ProcDMXChangeScreensAttributes(ClientPtr client) if (!_DMXXineramaActive()) goto noxinerama; - if (!(attribs = ALLOCATE_LOCAL(stuff->screenCount * sizeof(*attribs)))) + if (!(attribs = xalloc(stuff->screenCount * sizeof(*attribs)))) return BadAlloc; for (i = 0; i < stuff->screenCount; i++) { @@ -483,7 +483,7 @@ static int ProcDMXChangeScreensAttributes(ClientPtr client) &errorScreen); #endif - DEALLOCATE_LOCAL(attribs); + xfree(attribs); if (status == BadValue) return status; @@ -529,7 +529,7 @@ static int ProcDMXAddScreen(ClientPtr client) value_list = (CARD32 *)(stuff + 1); count = dmxFetchScreenAttributes(stuff->valueMask, &attr, value_list); - if (!(name = ALLOCATE_LOCAL(stuff->displayNameLength + 1 + 4))) + if (!(name = xalloc(stuff->displayNameLength + 1 + 4))) return BadAlloc; memcpy(name, &value_list[count], stuff->displayNameLength); name[stuff->displayNameLength] = '\0'; @@ -537,7 +537,7 @@ static int ProcDMXAddScreen(ClientPtr client) status = dmxAttachScreen(stuff->physicalScreen, &attr); - DEALLOCATE_LOCAL(name); + xfree(name); rep.type = X_Reply; rep.sequenceNumber = client->sequence; @@ -657,30 +657,30 @@ static int ProcDMXGetWindowAttributes(ClientPtr client) REQUEST_SIZE_MATCH(xDMXGetWindowAttributesReq); - if (!(screens = ALLOCATE_LOCAL(count * sizeof(*screens)))) + if (!(screens = xalloc(count * sizeof(*screens)))) return BadAlloc; - if (!(windows = ALLOCATE_LOCAL(count * sizeof(*windows)))) { - DEALLOCATE_LOCAL(screens); + if (!(windows = xalloc(count * sizeof(*windows)))) { + xfree(screens); return BadAlloc; } - if (!(pos = ALLOCATE_LOCAL(count * sizeof(*pos)))) { - DEALLOCATE_LOCAL(windows); - DEALLOCATE_LOCAL(screens); + if (!(pos = xalloc(count * sizeof(*pos)))) { + xfree(windows); + xfree(screens); return BadAlloc; } - if (!(vis = ALLOCATE_LOCAL(count * sizeof(*vis)))) { - DEALLOCATE_LOCAL(pos); - DEALLOCATE_LOCAL(windows); - DEALLOCATE_LOCAL(screens); + if (!(vis = xalloc(count * sizeof(*vis)))) { + xfree(pos); + xfree(windows); + xfree(screens); return BadAlloc; } if ((count = dmxPopulate(client, stuff->window, screens, windows, pos, vis)) < 0) { - DEALLOCATE_LOCAL(vis); - DEALLOCATE_LOCAL(pos); - DEALLOCATE_LOCAL(windows); - DEALLOCATE_LOCAL(screens); + xfree(vis); + xfree(pos); + xfree(windows); + xfree(screens); return BadWindow; } @@ -718,10 +718,10 @@ static int ProcDMXGetWindowAttributes(ClientPtr client) WriteToClient(client, count * sizeof(*vis), (char *)vis); } - DEALLOCATE_LOCAL(vis); - DEALLOCATE_LOCAL(pos); - DEALLOCATE_LOCAL(windows); - DEALLOCATE_LOCAL(screens); + xfree(vis); + xfree(pos); + xfree(windows); + xfree(screens); return client->noClientException; } @@ -882,7 +882,7 @@ static int ProcDMXAddInput(ClientPtr client) value_list = (CARD32 *)(stuff + 1); count = dmxFetchInputAttributes(stuff->valueMask, &attr, value_list); - if (!(name = ALLOCATE_LOCAL(stuff->displayNameLength + 1 + 4))) + if (!(name = xalloc(stuff->displayNameLength + 1 + 4))) return BadAlloc; memcpy(name, &value_list[count], stuff->displayNameLength); name[stuff->displayNameLength] = '\0'; @@ -890,7 +890,7 @@ static int ProcDMXAddInput(ClientPtr client) status = dmxAddInput(&attr, &id); - DEALLOCATE_LOCAL(name); + xfree(name); if (status) return status; diff --git a/hw/dmx/dmxextension.c b/hw/dmx/dmxextension.c index 103364446..560468c4b 100644 --- a/hw/dmx/dmxextension.c +++ b/hw/dmx/dmxextension.c @@ -1121,9 +1121,9 @@ static void dmxBERestoreRenderGlyph(pointer value, XID id, pointer n) } /* Now allocate the memory we need */ - images = ALLOCATE_LOCAL(len_images*sizeof(char)); - gids = ALLOCATE_LOCAL(glyphSet->hash.tableEntries*sizeof(Glyph)); - glyphs = ALLOCATE_LOCAL(glyphSet->hash.tableEntries*sizeof(XGlyphInfo)); + images = xalloc(len_images*sizeof(char)); + gids = xalloc(glyphSet->hash.tableEntries*sizeof(Glyph)); + glyphs = xalloc(glyphSet->hash.tableEntries*sizeof(XGlyphInfo)); memset(images, 0, len_images * sizeof(char)); pos = images; @@ -1159,9 +1159,9 @@ static void dmxBERestoreRenderGlyph(pointer value, XID id, pointer n) len_images); /* Clean up */ - DEALLOCATE_LOCAL(len_images); - DEALLOCATE_LOCAL(gids); - DEALLOCATE_LOCAL(glyphs); + xfree(len_images); + xfree(gids); + xfree(glyphs); } #endif diff --git a/hw/dmx/dmxpict.c b/hw/dmx/dmxpict.c index f2110b534..37dfa10ac 100644 --- a/hw/dmx/dmxpict.c +++ b/hw/dmx/dmxpict.c @@ -530,13 +530,13 @@ static int dmxProcRenderCompositeGlyphs(ClientPtr client) /* The following only works for Render version > 0.2 */ /* All of the XGlyphElt* structure sizes are identical */ - elts = ALLOCATE_LOCAL(nelt * sizeof(XGlyphElt8)); + elts = xalloc(nelt * sizeof(XGlyphElt8)); if (!elts) return BadAlloc; - glyphs = ALLOCATE_LOCAL(nglyph * size); + glyphs = xalloc(nglyph * size); if (!glyphs) { - DEALLOCATE_LOCAL(elts); + xfree(elts); return BadAlloc; } @@ -604,8 +604,8 @@ static int dmxProcRenderCompositeGlyphs(ClientPtr client) dmxSync(dmxScreen, FALSE); - DEALLOCATE_LOCAL(elts); - DEALLOCATE_LOCAL(glyphs); + xfree(elts); + xfree(glyphs); } return ret; diff --git a/hw/dmx/dmxpixmap.c b/hw/dmx/dmxpixmap.c index f8d012630..d24988204 100644 --- a/hw/dmx/dmxpixmap.c +++ b/hw/dmx/dmxpixmap.c @@ -81,7 +81,8 @@ void dmxBECreatePixmap(PixmapPtr pPixmap) /** Create a pixmap for \a pScreen with the specified \a width, \a * height, and \a depth. */ -PixmapPtr dmxCreatePixmap(ScreenPtr pScreen, int width, int height, int depth) +PixmapPtr dmxCreatePixmap(ScreenPtr pScreen, int width, int height, int depth, + unsigned usage_hint) { DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; PixmapPtr pPixmap; diff --git a/hw/dmx/dmxpixmap.h b/hw/dmx/dmxpixmap.h index 3cfd99e6d..64418340c 100644 --- a/hw/dmx/dmxpixmap.h +++ b/hw/dmx/dmxpixmap.h @@ -49,7 +49,8 @@ typedef struct _dmxPixPriv { extern Bool dmxInitPixmap(ScreenPtr pScreen); extern PixmapPtr dmxCreatePixmap(ScreenPtr pScreen, - int width, int height, int depth); + int width, int height, int depth, + unsigned usage_hint); extern Bool dmxDestroyPixmap(PixmapPtr pPixmap); extern RegionPtr dmxBitmapToRegion(PixmapPtr pPixmap); diff --git a/hw/kdrive/ephyr/XF86dri.c b/hw/kdrive/ephyr/XF86dri.c index ae2ec890f..c11da0634 100644 --- a/hw/kdrive/ephyr/XF86dri.c +++ b/hw/kdrive/ephyr/XF86dri.c @@ -57,6 +57,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <GL/glx.h> #include <X11/dri/xf86dri.h> #include <X11/dri/xf86dristr.h> +#include "GL/internal/dri_interface.h" static XExtensionInfo _xf86dri_info_data; static XExtensionInfo *xf86dri_info = &_xf86dri_info_data; @@ -384,8 +385,7 @@ Bool XF86DRICreateContext(dpy, screen, visual, context, hHWContext) context, hHWContext ); } -GLboolean XF86DRIDestroyContext( __DRInativeDisplay * ndpy, int screen, - __DRIid context ) +Bool XF86DRIDestroyContext( __DRInativeDisplay * ndpy, int screen, __DRIid context) { Display * const dpy = (Display *) ndpy; XExtDisplayInfo *info = find_display (dpy); @@ -406,8 +406,9 @@ GLboolean XF86DRIDestroyContext( __DRInativeDisplay * ndpy, int screen, return True; } -GLboolean XF86DRICreateDrawable( __DRInativeDisplay * ndpy, int screen, - __DRIid drawable, drm_drawable_t * hHWDrawable ) +Bool +XF86DRICreateDrawable (__DRInativeDisplay * ndpy, int screen, + __DRIid drawable, drm_drawable_t * hHWDrawable) { Display * const dpy = (Display *) ndpy; XExtDisplayInfo *info = find_display (dpy); @@ -436,7 +437,7 @@ GLboolean XF86DRICreateDrawable( __DRInativeDisplay * ndpy, int screen, return True; } -GLboolean XF86DRIDestroyDrawable( __DRInativeDisplay * ndpy, int screen, +Bool XF86DRIDestroyDrawable( __DRInativeDisplay * ndpy, int screen, __DRIid drawable ) { Display * const dpy = (Display *) ndpy; diff --git a/hw/kdrive/epson/epson13806.c b/hw/kdrive/epson/epson13806.c index cb00890a7..6cf8c9ad9 100644 --- a/hw/kdrive/epson/epson13806.c +++ b/hw/kdrive/epson/epson13806.c @@ -331,7 +331,7 @@ epsonCreateColormap (ColormapPtr pmap) case FB_VISUAL_STATIC_PSEUDOCOLOR: pVisual = pmap->pVisual; nent = pVisual->ColormapEntries; - pdefs = ALLOCATE_LOCAL (nent * sizeof (xColorItem)); + pdefs = xalloc (nent * sizeof (xColorItem)); if (!pdefs) return FALSE; for (i = 0; i < nent; i++) @@ -343,7 +343,7 @@ epsonCreateColormap (ColormapPtr pmap) pmap->red[i].co.local.green = pdefs[i].green; pmap->red[i].co.local.blue = pdefs[i].blue; } - DEALLOCATE_LOCAL (pdefs); + xfree (pdefs); return TRUE; default: diff --git a/hw/kdrive/fbdev/fbdev.c b/hw/kdrive/fbdev/fbdev.c index 6e8b3ff5e..177be0bdc 100644 --- a/hw/kdrive/fbdev/fbdev.c +++ b/hw/kdrive/fbdev/fbdev.c @@ -598,7 +598,7 @@ fbdevCreateColormap (ColormapPtr pmap) case FB_VISUAL_STATIC_PSEUDOCOLOR: pVisual = pmap->pVisual; nent = pVisual->ColormapEntries; - pdefs = ALLOCATE_LOCAL (nent * sizeof (xColorItem)); + pdefs = xalloc (nent * sizeof (xColorItem)); if (!pdefs) return FALSE; for (i = 0; i < nent; i++) @@ -610,7 +610,7 @@ fbdevCreateColormap (ColormapPtr pmap) pmap->red[i].co.local.green = pdefs[i].green; pmap->red[i].co.local.blue = pdefs[i].blue; } - DEALLOCATE_LOCAL (pdefs); + xfree (pdefs); return TRUE; default: return fbInitializeColormap (pmap); diff --git a/hw/kdrive/igs/igsdraw.c b/hw/kdrive/igs/igsdraw.c index e1ff2befc..677436be5 100644 --- a/hw/kdrive/igs/igsdraw.c +++ b/hw/kdrive/igs/igsdraw.c @@ -553,12 +553,12 @@ igsFillSpans (DrawablePtr pDrawable, GCPtr pGC, int n, return; } nTmp = n * miFindMaxBand(fbGetCompositeClip(pGC)); - pwidthFree = (int *)ALLOCATE_LOCAL(nTmp * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(nTmp * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(nTmp * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(nTmp * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } n = miClipSpans(fbGetCompositeClip(pGC), @@ -607,8 +607,8 @@ igsFillSpans (DrawablePtr pDrawable, GCPtr pGC, int n, _igsPatRect(cop,x,y,width,1,cmd); } } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); KdMarkSync (pDrawable->pScreen); } diff --git a/hw/kdrive/nvidia/nvidiavideo.c b/hw/kdrive/nvidia/nvidiavideo.c index ad7147dd1..2ab41edfd 100644 --- a/hw/kdrive/nvidia/nvidiavideo.c +++ b/hw/kdrive/nvidia/nvidiavideo.c @@ -343,7 +343,7 @@ nvidiaPaintRegion (ScreenPtr pScreen, RegionPtr pRgn, Pixel fg) BoxPtr pBox = REGION_RECTS (pRgn); int nBox = REGION_NUM_RECTS (pRgn); - rects = ALLOCATE_LOCAL (nBox * sizeof (xRectangle)); + rects = xalloc (nBox * sizeof (xRectangle)); if (!rects) goto bail0; r = rects; @@ -372,7 +372,7 @@ nvidiaPaintRegion (ScreenPtr pScreen, RegionPtr pRgn, Pixel fg) FreeScratchGC (pGC); bail1: - DEALLOCATE_LOCAL (rects); + xfree (rects); bail0: ; } diff --git a/hw/kdrive/savage/s3draw.c b/hw/kdrive/savage/s3draw.c index 311a7dc01..da0d6849f 100644 --- a/hw/kdrive/savage/s3draw.c +++ b/hw/kdrive/savage/s3draw.c @@ -518,7 +518,7 @@ s3PolyFillRect (DrawablePtr pDrawable, GCPtr pGC, numRects = REGION_NUM_RECTS(prgnClip) * nrectFill; if (numRects > NUM_STACK_RECTS) { - pboxClippedBase = (BoxPtr)ALLOCATE_LOCAL(numRects * sizeof(BoxRec)); + pboxClippedBase = (BoxPtr)xalloc(numRects * sizeof(BoxRec)); if (!pboxClippedBase) return; } @@ -636,7 +636,7 @@ s3PolyFillRect (DrawablePtr pDrawable, GCPtr pGC, pboxClippedBase); } if (pboxClippedBase != stackRects) - DEALLOCATE_LOCAL(pboxClippedBase); + xfree(pboxClippedBase); } void @@ -770,12 +770,12 @@ s3FillSpans (DrawablePtr pDrawable, GCPtr pGC, int n, else { nTmp = n * miFindMaxBand(pClip); - pwidthFree = (int *)ALLOCATE_LOCAL(nTmp * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(nTmp * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(nTmp * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(nTmp * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } n = miClipSpans(fbGetCompositeClip(pGC), @@ -819,8 +819,8 @@ s3FillSpans (DrawablePtr pDrawable, GCPtr pGC, int n, { _s3FillSpanLargeStipple (pDrawable, pGC, n, ppt, pwidth); } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } MarkSyncS3 (pDrawable->pScreen); } @@ -2448,12 +2448,12 @@ s3_24FillSpans (DrawablePtr pDrawable, GCPtr pGC, int n, else { nTmp = n * miFindMaxBand(pClip); - pwidthFree = (int *)ALLOCATE_LOCAL(nTmp * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(nTmp * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(nTmp * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(nTmp * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } n = miClipSpans(fbGetCompositeClip(pGC), @@ -2473,8 +2473,8 @@ s3_24FillSpans (DrawablePtr pDrawable, GCPtr pGC, int n, _s3SolidRect(s3,x*3,y,width*3,1); } } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } MarkSyncS3 (pDrawable->pScreen); } @@ -2609,7 +2609,7 @@ s3_24PolyFillRect (DrawablePtr pDrawable, GCPtr pGC, numRects = REGION_NUM_RECTS(prgnClip) * nrectFill; if (numRects > NUM_STACK_RECTS) { - pboxClippedBase = (BoxPtr)ALLOCATE_LOCAL(numRects * sizeof(BoxRec)); + pboxClippedBase = (BoxPtr)xalloc(numRects * sizeof(BoxRec)); if (!pboxClippedBase) return; } @@ -2717,7 +2717,7 @@ s3_24PolyFillRect (DrawablePtr pDrawable, GCPtr pGC, pGC->fgPixel, pGC->alu, pGC->planemask); } if (pboxClippedBase != stackRects) - DEALLOCATE_LOCAL(pboxClippedBase); + xfree(pboxClippedBase); } void diff --git a/hw/kdrive/sis530/sisdraw.c b/hw/kdrive/sis530/sisdraw.c index f2b39a477..595544348 100644 --- a/hw/kdrive/sis530/sisdraw.c +++ b/hw/kdrive/sis530/sisdraw.c @@ -1234,12 +1234,12 @@ sisFillSpans (DrawablePtr pDrawable, GCPtr pGC, int n, return; } nTmp = n * miFindMaxBand(fbGetCompositeClip(pGC)); - pwidthFree = (int *)ALLOCATE_LOCAL(nTmp * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(nTmp * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(nTmp * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(nTmp * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } n = miClipSpans(fbGetCompositeClip(pGC), @@ -1273,8 +1273,8 @@ sisFillSpans (DrawablePtr pDrawable, GCPtr pGC, int n, } } KdMarkSync (pDrawable->pScreen); - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } #define NUM_STACK_RECTS 1024 @@ -1323,7 +1323,7 @@ sisPolyFillRect (DrawablePtr pDrawable, GCPtr pGC, numRects = REGION_NUM_RECTS(prgnClip) * nrectFill; if (numRects > NUM_STACK_RECTS) { - pboxClippedBase = (BoxPtr)ALLOCATE_LOCAL(numRects * sizeof(BoxRec)); + pboxClippedBase = (BoxPtr)xalloc(numRects * sizeof(BoxRec)); if (!pboxClippedBase) return; } @@ -1448,7 +1448,7 @@ sisPolyFillRect (DrawablePtr pDrawable, GCPtr pGC, } } if (pboxClippedBase != stackRects) - DEALLOCATE_LOCAL(pboxClippedBase); + xfree(pboxClippedBase); } static const GCOps sisOps = { diff --git a/hw/kdrive/smi/smivideo.c b/hw/kdrive/smi/smivideo.c index 46593a0ee..f372498c0 100644 --- a/hw/kdrive/smi/smivideo.c +++ b/hw/kdrive/smi/smivideo.c @@ -342,7 +342,7 @@ mach64PaintRegion (ScreenPtr pScreen, RegionPtr pRgn, Pixel fg) BoxPtr pBox = REGION_RECTS (pRgn); int nBox = REGION_NUM_RECTS (pRgn); - rects = ALLOCATE_LOCAL (nBox * sizeof (xRectangle)); + rects = xalloc (nBox * sizeof (xRectangle)); if (!rects) goto bail0; r = rects; @@ -371,7 +371,7 @@ mach64PaintRegion (ScreenPtr pScreen, RegionPtr pRgn, Pixel fg) FreeScratchGC (pGC); bail1: - DEALLOCATE_LOCAL (rects); + xfree (rects); bail0: ; } diff --git a/hw/kdrive/src/kaa.c b/hw/kdrive/src/kaa.c index 486967783..88873513a 100644 --- a/hw/kdrive/src/kaa.c +++ b/hw/kdrive/src/kaa.c @@ -293,7 +293,7 @@ kaaDestroyPixmap (PixmapPtr pPixmap) } static PixmapPtr -kaaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth) +kaaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth, unsigned usage_hint) { PixmapPtr pPixmap; KaaPixmapPrivPtr pKaaPixmap; diff --git a/hw/kdrive/src/kxv.c b/hw/kdrive/src/kxv.c index fa506861c..b6ff4f831 100644 --- a/hw/kdrive/src/kxv.c +++ b/hw/kdrive/src/kxv.c @@ -1915,7 +1915,7 @@ KXVPaintRegion (DrawablePtr pDraw, RegionPtr pRgn, Pixel fg) BoxPtr pBox = REGION_RECTS (pRgn); int nBox = REGION_NUM_RECTS (pRgn); - rects = ALLOCATE_LOCAL (nBox * sizeof (xRectangle)); + rects = xalloc (nBox * sizeof (xRectangle)); if (!rects) goto bail0; r = rects; @@ -1944,7 +1944,7 @@ KXVPaintRegion (DrawablePtr pDraw, RegionPtr pRgn, Pixel fg) FreeScratchGC (pGC); bail1: - DEALLOCATE_LOCAL (rects); + xfree (rects); bail0: ; } diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c index 812326a50..0d4ca57fe 100644 --- a/hw/vfb/InitOutput.c +++ b/hw/vfb/InitOutput.c @@ -482,9 +482,9 @@ vfbInstallColormap(ColormapPtr pmap) swapcopy32(pXWDHeader->bits_per_rgb, pVisual->bitsPerRGBValue); swapcopy32(pXWDHeader->colormap_entries, pVisual->ColormapEntries); - ppix = (Pixel *)ALLOCATE_LOCAL(entries * sizeof(Pixel)); - prgb = (xrgb *)ALLOCATE_LOCAL(entries * sizeof(xrgb)); - defs = (xColorItem *)ALLOCATE_LOCAL(entries * sizeof(xColorItem)); + ppix = (Pixel *)xalloc(entries * sizeof(Pixel)); + prgb = (xrgb *)xalloc(entries * sizeof(xrgb)); + defs = (xColorItem *)xalloc(entries * sizeof(xColorItem)); for (i = 0; i < entries; i++) ppix[i] = i; /* XXX truecolor */ @@ -499,9 +499,9 @@ vfbInstallColormap(ColormapPtr pmap) } (*pmap->pScreen->StoreColors)(pmap, entries, defs); - DEALLOCATE_LOCAL(ppix); - DEALLOCATE_LOCAL(prgb); - DEALLOCATE_LOCAL(defs); + xfree(ppix); + xfree(prgb); + xfree(defs); } } diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am index 9be022010..4afc3a4e5 100644 --- a/hw/xfree86/Makefile.am +++ b/hw/xfree86/Makefile.am @@ -13,14 +13,14 @@ MFB_SUBDIR = xf1bpp xf4bpp endif if CFB -CFB_SUBDIR = xf8_16bpp xf8_32bpp +CFB_SUBDIR = xf8_32bpp endif DOC_SUBDIR = doc SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support parser rac \ ramdac shadowfb vbe vgahw xaa $(MFB_SUBDIR) $(CFB_SUBDIR) \ - loader dixmods exa modes \ + xf8_16bpp loader dixmods exa modes \ $(DRI_SUBDIR) $(XF86UTILS_SUBDIR) $(DOC_SUBDIR) DIST_SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support \ @@ -100,7 +100,6 @@ optionsdir = $(libdir)/X11 dist_options_DATA = Options CPP_FILES_FLAGS = \ - -DRGBPATH=\"$(RGB_DB)\" \ -DLOCALFONTPATH="\"$(BASE_FONT_PATH)/local\"" \ -DMISCFONTPATH="\"$(BASE_FONT_PATH)/misc\"" \ -DT1FONTPATH="\"$(BASE_FONT_PATH)/Type1\"" \ diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index 35b62a244..638027432 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -699,21 +699,6 @@ configFiles(XF86ConfFilesPtr fileconf) } - /* RgbPath */ - - pathFrom = X_DEFAULT; - - if (xf86coFlag) - pathFrom = X_CMDLINE; - else if (fileconf) { - if (fileconf->file_rgbpath) { - rgbPath = fileconf->file_rgbpath; - pathFrom = X_CONFIG; - } - } - - xf86Msg(pathFrom, "RgbPath set to \"%s\"\n", rgbPath); - if (fileconf && fileconf->file_inputdevs) { xf86InputDeviceList = fileconf->file_inputdevs; xf86Msg(X_CONFIG, "Input device list set to \"%s\"\n", @@ -1094,7 +1079,7 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts) } #ifdef GLXEXT - xf86Info.glxVisuals = XF86_GlxVisualsAll; + xf86Info.glxVisuals = XF86_GlxVisualsTypical; xf86Info.glxVisualsFrom = X_DEFAULT; if ((s = xf86GetOptValString(FlagOptions, FLAG_GLX_VISUALS))) { if (!xf86NameCmp(s, "minimal")) { diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c index 4c980a291..0cf445cdb 100644 --- a/hw/xfree86/common/xf86Configure.c +++ b/hw/xfree86/common/xf86Configure.c @@ -605,8 +605,6 @@ configureFilesSection (void) ptr->file_modulepath = strdup(xf86ModulePath); if (defaultFontPath) ptr->file_fontpath = strdup(defaultFontPath); - if (rgbPath) - ptr->file_rgbpath = strdup(rgbPath); return ptr; } @@ -823,7 +821,7 @@ DoConfigure() homebuf[PATH_MAX-1] = '\0'; home = homebuf; if (!(filename = - (char *)ALLOCATE_LOCAL(strlen(home) + + (char *)xalloc(strlen(home) + strlen(configfile) + 3))) if (home[0] == '/' && home[1] == '\0') diff --git a/hw/xfree86/common/xf86Cursor.c b/hw/xfree86/common/xf86Cursor.c index 9e6e62216..3ea1b4d91 100644 --- a/hw/xfree86/common/xf86Cursor.c +++ b/hw/xfree86/common/xf86Cursor.c @@ -558,6 +558,14 @@ xf86InitOrigins(void) screen = &xf86ConfigLayout.screens[i]; + if (screen->refscreen != NULL && + screen->refscreen->screennum >= xf86NumScreens) { + screensLeft &= ~(1 << i); + xf86Msg(X_WARNING, "Not including screen \"%s\" in origins calculation.\n", + screen->screen->id); + continue; + } + switch(screen->where) { case PosObsolete: OldStyleConfig = TRUE; diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c index 68f538fae..0daf1de44 100644 --- a/hw/xfree86/common/xf86DGA.c +++ b/hw/xfree86/common/xf86DGA.c @@ -427,7 +427,7 @@ xf86SetDGAMode( } if(pMode->flags & DGA_PIXMAP_AVAILABLE) { - if((pPix = (*pScreen->CreatePixmap)(pScreen, 0, 0, pMode->depth))) { + if((pPix = (*pScreen->CreatePixmap)(pScreen, 0, 0, pMode->depth, 0))) { (*pScreen->ModifyPixmapHeader)(pPix, pMode->pixmapWidth, pMode->pixmapHeight, pMode->depth, pMode->bitsPerPixel, diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 574602f43..bc2fe0912 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -510,12 +510,14 @@ static void xf86SigioReadInput(int fd, void *closure) { + int errno_save = errno; int sigstate = xf86BlockSIGIO(); InputInfoPtr pInfo = (InputInfoPtr) closure; pInfo->read_input(pInfo); xf86UnblockSIGIO(sigstate); + errno = errno_save; } /* diff --git a/hw/xfree86/common/xf86MiscExt.c b/hw/xfree86/common/xf86MiscExt.c index 655304e8b..c1b9c60fc 100644 --- a/hw/xfree86/common/xf86MiscExt.c +++ b/hw/xfree86/common/xf86MiscExt.c @@ -152,8 +152,6 @@ MiscExtGetMouseSettings(pointer *mouse, char **devname) { mseParamsPtr mseptr; - DEBUG_P("MiscExtGetMouseSettings"); - mseptr = MiscExtCreateStruct(MISC_POINTER); if (!mseptr) return FALSE; @@ -184,8 +182,6 @@ MiscExtGetMouseValue(pointer mouse, MiscExtMseValType valtype) { mseParamsPtr mse = mouse; - DEBUG_P("MiscExtGetMouseValue"); - switch (valtype) { case MISC_MSE_PROTO: return mse->type; case MISC_MSE_BAUDRATE: return mse->baudrate; @@ -205,8 +201,6 @@ MiscExtSetMouseValue(pointer mouse, MiscExtMseValType valtype, int value) { mseParamsPtr mse = mouse; - DEBUG_P("MiscExtSetMouseValue"); - switch (valtype) { case MISC_MSE_PROTO: mse->type = value; @@ -251,8 +245,6 @@ MiscExtSetMouseDevice(pointer mouse, char* device) _X_EXPORT Bool MiscExtGetKbdSettings(pointer *kbd) { - DEBUG_P("MiscExtGetKbdSettings"); - return FALSE; } @@ -290,8 +282,6 @@ MiscExtClientStateCallback(CallbackListPtr *callbacks, _X_EXPORT int MiscExtSetGrabKeysState(ClientPtr client, int state) { - DEBUG_P("MiscExtSetGrabKeysState"); - if (xf86Info.grabInfo.override == NULL || xf86Info.grabInfo.override == client) { if (state == 0 && xf86Info.grabInfo.disabled == 0) { @@ -318,8 +308,6 @@ MiscExtSetGrabKeysState(ClientPtr client, int state) _X_EXPORT pointer MiscExtCreateStruct(MiscExtStructType mse_or_kbd) { - DEBUG_P("MiscExtCreateStruct"); - switch (mse_or_kbd) { case MISC_POINTER: { @@ -348,8 +336,6 @@ MiscExtCreateStruct(MiscExtStructType mse_or_kbd) _X_EXPORT void MiscExtDestroyStruct(pointer structure, MiscExtStructType mse_or_kbd) { - DEBUG_P("MiscExtDestroyStruct"); - switch (mse_or_kbd) { case MISC_POINTER: case MISC_KEYBOARD: @@ -410,8 +396,6 @@ MiscExtAuthorizeDevice(InputInfoPtr pInfo, char *device) _X_EXPORT MiscExtReturn MiscExtApply(pointer structure, MiscExtStructType mse_or_kbd) { - DEBUG_P("MiscExtApply"); - if (mse_or_kbd == MISC_POINTER) { Bool protoChanged = FALSE; int oldflags; @@ -551,8 +535,6 @@ _X_EXPORT Bool MiscExtGetFilePaths(const char **configfile, const char **modulepath, const char **logfile) { - DEBUG_P("MiscExtGetFilePaths"); - *configfile = xf86ConfigFile; *modulepath = xf86ModulePath; *logfile = xf86LogFile; @@ -566,8 +548,6 @@ MiscExtPassMessage(int scrnIndex, const char *msgtype, const char *msgval, { ScrnInfoPtr pScr = xf86Screens[scrnIndex]; - DEBUG_P("MiscExtPassMessage"); - if (*pScr->HandleMessage == NULL) return BadImplementation; return (*pScr->HandleMessage)(scrnIndex, msgtype, msgval, retstr); diff --git a/hw/xfree86/common/xf86VidMode.c b/hw/xfree86/common/xf86VidMode.c index 763e5c540..38d605c88 100644 --- a/hw/xfree86/common/xf86VidMode.c +++ b/hw/xfree86/common/xf86VidMode.c @@ -67,8 +67,6 @@ VidModeExtensionInit(ScreenPtr pScreen) #ifdef XF86VIDMODE VidModePtr pVidMode; - DEBUG_P("VidModeExtensionInit"); - if (!xf86GetVidModeEnabled()) { DEBUG_P("!xf86GetVidModeEnabled()"); return FALSE; @@ -103,8 +101,6 @@ VidModeClose(int i, ScreenPtr pScreen) { VidModePtr pVidMode = VMPTR(pScreen); - DEBUG_P("VidModeClose"); - /* This shouldn't happen */ if (!pVidMode) return FALSE; @@ -125,8 +121,6 @@ VidModeAvailable(int scrnIndex) ScrnInfoPtr pScrn; VidModePtr pVidMode; - DEBUG_P("VidModeAvailable"); - if (VidModeKey == NULL) { DEBUG_P("VidModeKey == NULL"); return FALSE; @@ -152,8 +146,6 @@ VidModeGetCurrentModeline(int scrnIndex, pointer *mode, int *dotClock) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeGetCurrentModeline"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -169,8 +161,6 @@ VidModeGetDotClock(int scrnIndex, int Clock) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeGetDotClock"); - if (!VidModeAvailable(scrnIndex)) return 0; @@ -186,8 +176,6 @@ VidModeGetNumOfClocks(int scrnIndex, Bool *progClock) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeGetNumOfClocks"); - if (!VidModeAvailable(scrnIndex)) return 0; @@ -207,8 +195,6 @@ VidModeGetClocks(int scrnIndex, int *Clocks) ScrnInfoPtr pScrn; int i; - DEBUG_P("VidModeGetClocks"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -230,8 +216,6 @@ VidModeGetFirstModeline(int scrnIndex, pointer *mode, int *dotClock) ScrnInfoPtr pScrn; VidModePtr pVidMode; - DEBUG_P("VidModeGetFirstModeline"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -256,8 +240,6 @@ VidModeGetNextModeline(int scrnIndex, pointer *mode, int *dotClock) VidModePtr pVidMode; DisplayModePtr p; - DEBUG_P("VidModeGetNextModeline"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -281,8 +263,6 @@ VidModeDeleteModeline(int scrnIndex, pointer mode) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeDeleteModeline"); - if ((mode == NULL) || (!VidModeAvailable(scrnIndex))) return FALSE; @@ -296,8 +276,6 @@ VidModeZoomViewport(int scrnIndex, int zoom) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeZoomViewPort"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -311,8 +289,6 @@ VidModeSetViewPort(int scrnIndex, int x, int y) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeSetViewPort"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -334,8 +310,6 @@ VidModeGetViewPort(int scrnIndex, int *x, int *y) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeGetViewPort"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -352,8 +326,6 @@ VidModeSwitchMode(int scrnIndex, pointer mode) DisplayModePtr pTmpMode; Bool retval; - DEBUG_P("VidModeSwitchMode"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -374,8 +346,6 @@ VidModeLockZoom(int scrnIndex, Bool lock) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeLockZoom"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -393,8 +363,6 @@ VidModeGetMonitor(int scrnIndex, pointer *monitor) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeGetMonitor"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -409,8 +377,6 @@ VidModeCheckModeForMonitor(int scrnIndex, pointer mode) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeCheckModeForMonitor"); - if ((mode == NULL) || (!VidModeAvailable(scrnIndex))) return MODE_ERROR; @@ -424,8 +390,6 @@ VidModeCheckModeForDriver(int scrnIndex, pointer mode) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeCheckModeForDriver"); - if ((mode == NULL) || (!VidModeAvailable(scrnIndex))) return MODE_ERROR; @@ -440,8 +404,6 @@ VidModeSetCrtcForMode(int scrnIndex, pointer mode) ScrnInfoPtr pScrn; DisplayModePtr ScreenModes; - DEBUG_P("VidModeSetCrtcForMode"); - if ((mode == NULL) || (!VidModeAvailable(scrnIndex))) return; @@ -460,8 +422,6 @@ VidModeAddModeline(int scrnIndex, pointer mode) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeAddModeline"); - if ((mode == NULL) || (!VidModeAvailable(scrnIndex))) return FALSE; @@ -484,8 +444,6 @@ VidModeGetNumOfModes(int scrnIndex) pointer mode = NULL; int dotClock= 0, nummodes = 0; - DEBUG_P("VidModeGetNumOfModes"); - if (!VidModeGetFirstModeline(scrnIndex, &mode, &dotClock)) return nummodes; @@ -502,8 +460,6 @@ VidModeSetGamma(int scrnIndex, float red, float green, float blue) ScrnInfoPtr pScrn; Gamma gamma; - DEBUG_P("VidModeSetGamma"); - if (!VidModeAvailable(scrnIndex)) return FALSE; @@ -522,8 +478,6 @@ VidModeGetGamma(int scrnIndex, float *red, float *green, float *blue) { ScrnInfoPtr pScrn; - DEBUG_P("VidModeGetGamma"); - if (!VidModeAvailable(scrnIndex)) return FALSE; diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index b694b7303..cd0c30ac1 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -164,6 +164,11 @@ xf86ActivateDevice(LocalDevicePtr local) dev->coreEvents = local->flags & XI86_ALWAYS_CORE; RegisterOtherDevice(dev); +#ifdef XKB + if (!noXkbExtension) + XkbSetExtension(dev, ProcessKeyboardEvent); +#endif + if (serverGeneration == 1) xf86Msg(X_INFO, "XINPUT: Adding extended input device \"%s\" (type: %s)\n", local->name, local->type_name); diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c index 4ec099a19..63d1cb31c 100644 --- a/hw/xfree86/common/xf86sbusBus.c +++ b/hw/xfree86/common/xf86sbusBus.c @@ -622,7 +622,7 @@ xf86SbusCmapLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, int i, index; sbusCmapPtr cmap; struct fbcmap fbcmap; - unsigned char *data = ALLOCATE_LOCAL(numColors*3); + unsigned char *data = xalloc(numColors*3); cmap = SBUSCMAPPTR(pScrn->pScreen); if (!cmap) return; @@ -643,7 +643,7 @@ xf86SbusCmapLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, fbcmap.blue[fbcmap.count++] = colors[index].blue; } ioctl (cmap->psdp->fd, FBIOPUTCMAP, &fbcmap); - DEALLOCATE_LOCAL(data); + xfree(data); } static Bool diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c index f972b1f18..7483e20d2 100644 --- a/hw/xfree86/common/xf86xv.c +++ b/hw/xfree86/common/xf86xv.c @@ -1847,7 +1847,7 @@ xf86XVFillKeyHelperDrawable (DrawablePtr pDraw, CARD32 key, RegionPtr clipboxes) REGION_TRANSLATE(pDraw->pScreen, clipboxes, -pDraw->x, -pDraw->y); - rects = ALLOCATE_LOCAL(nbox * sizeof(xRectangle)); + rects = xalloc(nbox * sizeof(xRectangle)); for(i = 0; i < nbox; i++, pbox++) { rects[i].x = pbox->x1; @@ -1860,7 +1860,7 @@ xf86XVFillKeyHelperDrawable (DrawablePtr pDraw, CARD32 key, RegionPtr clipboxes) if (!pPriv) FreeGC(pGC, 0); - DEALLOCATE_LOCAL(rects); + xfree(rects); } _X_EXPORT void diff --git a/hw/xfree86/dixmods/extmod/Makefile.am b/hw/xfree86/dixmods/extmod/Makefile.am index 9f6c4081b..f90e144ea 100644 --- a/hw/xfree86/dixmods/extmod/Makefile.am +++ b/hw/xfree86/dixmods/extmod/Makefile.am @@ -11,6 +11,14 @@ if XV XV_SRCS = xvmod.c xvmodproc.h endif +if XF86MISC +XF86MISC_SRCS = xf86misc.c xf86miscproc.h +endif + +if XF86VIDMODE +XF86VMODE_SRCS = xf86vmode.c vidmodeproc.h +endif + AM_CFLAGS = @DIX_CFLAGS@ @XORG_CFLAGS@ INCLUDES = @XORG_INCS@ \ -I$(top_srcdir)/afb \ @@ -24,9 +32,7 @@ libextmod_la_LDFLAGS = -avoid-version libextmod_la_SOURCES = modinit.c \ modinit.h \ $(DGA_SRCS) \ - xf86misc.c \ - xf86miscproc.h \ - xf86vmode.c \ - vidmodeproc.h \ + $(XF86MISC_SRCS) \ + $(XF86VMODE_SRCS) \ $(XV_SRCS) libextmod_la_LIBADD = $(top_builddir)/Xext/libXextmodule.la diff --git a/hw/xfree86/dixmods/extmod/xf86vmode.c b/hw/xfree86/dixmods/extmod/xf86vmode.c index 2ad681c90..17ba44aba 100644 --- a/hw/xfree86/dixmods/extmod/xf86vmode.c +++ b/hw/xfree86/dixmods/extmod/xf86vmode.c @@ -1373,14 +1373,14 @@ ProcXF86VidModeGetMonitor(ClientPtr client) rep.sequenceNumber = client->sequence; rep.nhsync = nHsync; rep.nvsync = nVrefresh; - hsyncdata = ALLOCATE_LOCAL(nHsync * sizeof(CARD32)); + hsyncdata = xalloc(nHsync * sizeof(CARD32)); if (!hsyncdata) { return BadAlloc; } - vsyncdata = ALLOCATE_LOCAL(nVrefresh * sizeof(CARD32)); + vsyncdata = xalloc(nVrefresh * sizeof(CARD32)); if (!vsyncdata) { - DEALLOCATE_LOCAL(hsyncdata); + xfree(hsyncdata); return BadAlloc; } @@ -1413,8 +1413,8 @@ ProcXF86VidModeGetMonitor(ClientPtr client) if (rep.modelLength) WriteToClient(client, rep.modelLength, (char *)(VidModeGetMonitorValue(monitor, VIDMODE_MON_MODEL, 0)).ptr); - DEALLOCATE_LOCAL(hsyncdata); - DEALLOCATE_LOCAL(vsyncdata); + xfree(hsyncdata); + xfree(vsyncdata); return (client->noClientException); } @@ -1498,11 +1498,11 @@ ProcXF86VidModeGetDotClocks(ClientPtr client) rep.flags = 0; if (!ClockProg) { - Clocks = ALLOCATE_LOCAL(numClocks * sizeof(int)); + Clocks = xalloc(numClocks * sizeof(int)); if (!Clocks) return BadValue; if (!VidModeGetClocks(stuff->screen, Clocks)) { - DEALLOCATE_LOCAL(Clocks); + xfree(Clocks); return BadValue; } } @@ -1529,7 +1529,7 @@ ProcXF86VidModeGetDotClocks(ClientPtr client) } } - DEALLOCATE_LOCAL(Clocks); + xfree(Clocks); return (client->noClientException); } diff --git a/hw/xfree86/dixmods/glxmodule.c b/hw/xfree86/dixmods/glxmodule.c index 847f0d4a2..0ff867de0 100644 --- a/hw/xfree86/dixmods/glxmodule.c +++ b/hw/xfree86/dixmods/glxmodule.c @@ -45,7 +45,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. static MODULESETUPPROTO(glxSetup); -static const char *initdeps[] = { "DOUBLE-BUFFER", NULL }; +static const char *initdeps[] = { "DOUBLE-BUFFER", "COMPOSITE", NULL }; static ExtensionModule GLXExt = { diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre index 4064ef6d8..3c657d0f0 100644 --- a/hw/xfree86/doc/man/xorg.conf.man.pre +++ b/hw/xfree86/doc/man/xorg.conf.man.pre @@ -373,7 +373,6 @@ The recommended font path contains the following font path elements: .I __projectroot__/lib/X11/fonts/75dpi/:unscaled .I __projectroot__/lib/X11/fonts/100dpi/:unscaled .I __projectroot__/lib/X11/fonts/Type1/ -.I __projectroot__/lib/X11/fonts/Speedo/ .I __projectroot__/lib/X11/fonts/75dpi/ .I __projectroot__/lib/X11/fonts/100dpi/ .fi @@ -383,20 +382,6 @@ Font path elements that are found to be invalid are removed from the font path when the server starts up. .RE .TP 7 -.BI "RGBPath \*q" path \*q -sets the path name for the RGB color database. -When this entry is not specified in the config file, the server falls back -to the compiled\-in default RGB path, which is: -.PP -.RS 11 -.I __projectroot__/share/X11/rgb -.RE -.PP -Note that an implicit -.I .txt -is added to this path if the server was compiled to use text rather than -binary format RGB color databases. -.TP 7 .BI "ModulePath \*q" path \*q sets the search path for loadable __xservername__ server modules. This path is a comma separated list of directories which the __xservername__ server diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c index e01d6d9be..d16910f33 100644 --- a/hw/xfree86/dri/xf86dri.c +++ b/hw/xfree86/dri/xf86dri.c @@ -358,8 +358,6 @@ ProcXF86DRICreateContext( { xXF86DRICreateContextReply rep; ScreenPtr pScreen; - VisualPtr visual; - int i; REQUEST(xXF86DRICreateContextReq); REQUEST_SIZE_MATCH(xXF86DRICreateContextReq); diff --git a/hw/xfree86/fbdevhw/fbdevhw.c b/hw/xfree86/fbdevhw/fbdevhw.c index 837d2b12b..13be7858f 100644 --- a/hw/xfree86/fbdevhw/fbdevhw.c +++ b/hw/xfree86/fbdevhw/fbdevhw.c @@ -258,7 +258,7 @@ fbdev_modes_equal(struct fb_var_screeninfo *set, struct fb_var_screeninfo *req) static void fbdev2xfree_timing(struct fb_var_screeninfo *var, DisplayModePtr mode) { - mode->Clock = var->pixclock ? 1000000000/var->pixclock : 28000000; + mode->Clock = var->pixclock ? 1000000000/var->pixclock : 0; mode->HDisplay = var->xres; mode->HSyncStart = mode->HDisplay+var->right_margin; mode->HSyncEnd = mode->HSyncStart+var->hsync_len; diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h index 4c843cd83..f312b30cb 100644 --- a/hw/xfree86/modes/xf86Crtc.h +++ b/hw/xfree86/modes/xf86Crtc.h @@ -29,6 +29,7 @@ #endif #include "xf86Modes.h" #include "xf86Cursor.h" +#include "xf86i2c.h" #include "damage.h" #include "picturestr.h" @@ -60,13 +61,13 @@ typedef enum _xf86ConnectorType { XF86ConnectorSvideo, XF86ConnectorComponent, XF86ConnectorLFP, - XF86ConnectorProprietary, + XF86ConnectorProprietary } xf86ConnectorType; typedef enum _xf86OutputStatus { XF86OutputStatusConnected, XF86OutputStatusDisconnected, - XF86OutputStatusUnknown, + XF86OutputStatusUnknown } xf86OutputStatus; typedef struct _xf86CrtcFuncs { diff --git a/hw/xfree86/modes/xf86Modes.c b/hw/xfree86/modes/xf86Modes.c index 99817898a..3879b9103 100644 --- a/hw/xfree86/modes/xf86Modes.c +++ b/hw/xfree86/modes/xf86Modes.c @@ -196,9 +196,8 @@ xf86DuplicateMode(DisplayModePtr pMode) pNew->prev = NULL; if (pNew->name == NULL) { xf86SetModeDefaultName(pMode); - } else { - pNew->name = xnfstrdup(pMode->name); } + pNew->name = xnfstrdup(pMode->name); return pNew; } diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index 2c0dc3120..d4a88f736 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -633,7 +633,7 @@ xf86RandR12CrtcNotify (RRCrtcPtr randr_crtc) DisplayModePtr mode = &crtc->mode; Bool ret; - randr_outputs = ALLOCATE_LOCAL(config->num_output * sizeof (RROutputPtr)); + randr_outputs = xalloc(config->num_output * sizeof (RROutputPtr)); if (!randr_outputs) return FALSE; x = crtc->x; @@ -668,7 +668,7 @@ xf86RandR12CrtcNotify (RRCrtcPtr randr_crtc) } ret = RRCrtcNotify (randr_crtc, randr_mode, x, y, rotation, numOutputs, randr_outputs); - DEALLOCATE_LOCAL(randr_outputs); + xfree(randr_outputs); return ret; } @@ -723,7 +723,7 @@ xf86RandR12CrtcSet (ScreenPtr pScreen, xf86CrtcPtr *save_crtcs; Bool save_enabled = crtc->enabled; - save_crtcs = ALLOCATE_LOCAL(config->num_output * sizeof (xf86CrtcPtr)); + save_crtcs = xalloc(config->num_output * sizeof (xf86CrtcPtr)); if ((randr_mode != NULL) != crtc->enabled) changed = TRUE; else if (randr_mode && !xf86RandRModeMatches (randr_mode, &crtc->mode)) @@ -779,7 +779,7 @@ xf86RandR12CrtcSet (ScreenPtr pScreen, xf86OutputPtr output = config->output[o]; output->crtc = save_crtcs[o]; } - DEALLOCATE_LOCAL(save_crtcs); + xfree(save_crtcs); return FALSE; } /* @@ -792,7 +792,7 @@ xf86RandR12CrtcSet (ScreenPtr pScreen, } xf86DisableUnusedFunctions (pScrn); } - DEALLOCATE_LOCAL(save_crtcs); + xfree(save_crtcs); return xf86RandR12CrtcNotify (randr_crtc); } @@ -935,8 +935,8 @@ xf86RandR12SetInfo12 (ScreenPtr pScreen) RRCrtcPtr randr_crtc; int nclone; - clones = ALLOCATE_LOCAL(config->num_output * sizeof (RROutputPtr)); - crtcs = ALLOCATE_LOCAL (config->num_crtc * sizeof (RRCrtcPtr)); + clones = xalloc(config->num_output * sizeof (RROutputPtr)); + crtcs = xalloc (config->num_crtc * sizeof (RRCrtcPtr)); for (o = 0; o < config->num_output; o++) { xf86OutputPtr output = config->output[o]; @@ -953,8 +953,8 @@ xf86RandR12SetInfo12 (ScreenPtr pScreen) if (!RROutputSetCrtcs (output->randr_output, crtcs, ncrtc)) { - DEALLOCATE_LOCAL (crtcs); - DEALLOCATE_LOCAL (clones); + xfree (crtcs); + xfree (clones); return FALSE; } @@ -990,13 +990,13 @@ xf86RandR12SetInfo12 (ScreenPtr pScreen) } if (!RROutputSetClones (output->randr_output, clones, nclone)) { - DEALLOCATE_LOCAL (crtcs); - DEALLOCATE_LOCAL (clones); + xfree (crtcs); + xfree (clones); return FALSE; } } - DEALLOCATE_LOCAL (crtcs); - DEALLOCATE_LOCAL (clones); + xfree (crtcs); + xfree (clones); return TRUE; } diff --git a/hw/xfree86/os-support/linux/lnx_mouse.c b/hw/xfree86/os-support/linux/lnx_mouse.c index 150547ea4..d2822153f 100644 --- a/hw/xfree86/os-support/linux/lnx_mouse.c +++ b/hw/xfree86/os-support/linux/lnx_mouse.c @@ -45,7 +45,8 @@ typedef enum { MOUSE_PROTO_SERIAL, MOUSE_PROTO_PS2, MOUSE_PROTO_MSC, - MOUSE_PROTO_GPM + MOUSE_PROTO_GPM, + MOUSE_PROTO_EXPPS2, } protocolTypes; static struct { @@ -55,7 +56,8 @@ static struct { { MOUSE_PROTO_UNKNOWN, NULL }, { MOUSE_PROTO_PS2, "PS/2" }, { MOUSE_PROTO_MSC, "MouseSystems" }, - { MOUSE_PROTO_GPM, "GPM" } + { MOUSE_PROTO_GPM, "GPM" }, + { MOUSE_PROTO_EXPPS2, "ExplorerPS/2" }, }; static const char * @@ -87,7 +89,7 @@ FindDevice(InputInfoPtr pInfo, const char *protocol, int flags) } static const char * -GuessProtocol(InputInfoPtr pInfo, int flags) +lnxMouseMagic(InputInfoPtr pInfo) { int fd = -1; const char *dev; @@ -137,8 +139,10 @@ GuessProtocol(InputInfoPtr pInfo, int flags) } } - if (strcmp(realdev, DEFAULT_PS2_DEV) == 0) - proto = MOUSE_PROTO_PS2; + if (strcmp(realdev, DEFAULT_MOUSE_DEV) == 0) + proto = MOUSE_PROTO_EXPPS2; + else if (strcmp(realdev, DEFAULT_PS2_DEV) == 0) + proto = MOUSE_PROTO_EXPPS2; else if (strcmp(realdev, DEFAULT_GPM_DATA_DEV) == 0) proto = MOUSE_PROTO_MSC; else if (strcmp(realdev, DEFAULT_GPM_CTL_DEV) == 0) @@ -171,15 +175,14 @@ GuessProtocol(InputInfoPtr pInfo, int flags) close(fd); } if (proto == MOUSE_PROTO_UNKNOWN) { - xf86Msg(X_ERROR, "%s: GuessProtocol: Cannot find mouse protocol.\n", + xf86Msg(X_ERROR, "%s: Cannot find mouse protocol.\n", pInfo->name); return NULL; } else { for (i = 0; i < sizeof(devproto)/sizeof(devproto[0]); i++) { if (devproto[i].proto == proto) { xf86Msg(X_INFO, - "%s: GuessProtocol: " - "setting mouse protocol to \"%s\"\n", + "%s: Setting mouse protocol to \"%s\"\n", pInfo->name, devproto[i].name); return devproto[i].name; } @@ -188,6 +191,18 @@ GuessProtocol(InputInfoPtr pInfo, int flags) return NULL; } +static const char * +GuessProtocol(InputInfoPtr pInfo, int flags) +{ + return lnxMouseMagic(pInfo); +} + +static const char * +SetupAuto(InputInfoPtr pInfo, int *protoPara) +{ + return lnxMouseMagic(pInfo); +} + _X_EXPORT OSMouseInfoPtr xf86OSMouseInit(int flags) { @@ -200,6 +215,7 @@ xf86OSMouseInit(int flags) p->DefaultProtocol = DefaultProtocol; p->FindDevice = FindDevice; p->GuessProtocol = GuessProtocol; + p->SetupAuto = SetupAuto; return p; } diff --git a/hw/xfree86/os-support/shared/sigio.c b/hw/xfree86/os-support/shared/sigio.c index f6c15c28f..c97f50302 100644 --- a/hw/xfree86/os-support/shared/sigio.c +++ b/hw/xfree86/os-support/shared/sigio.c @@ -243,9 +243,6 @@ xf86BlockSIGIO (void) sigaddset (&set, SIGIO); sigprocmask (SIG_BLOCK, &set, &old); ret = sigismember (&old, SIGIO); -#ifdef DEBUG - ErrorF("%i = xf86BlockSIGIO()\n",ret); -#endif return ret; } @@ -253,9 +250,6 @@ _X_EXPORT void xf86UnblockSIGIO (int wasset) { sigset_t set; -#ifdef DEBUG - ErrorF("xf86UnblockSIGIO(%i)\n",wasset); -#endif if (!wasset) { diff --git a/hw/xfree86/parser/Files.c b/hw/xfree86/parser/Files.c index 8cec2a91a..3777432b1 100644 --- a/hw/xfree86/parser/Files.c +++ b/hw/xfree86/parser/Files.c @@ -69,7 +69,6 @@ static xf86ConfigSymTabRec FilesTab[] = { {ENDSECTION, "endsection"}, {FONTPATH, "fontpath"}, - {RGBPATH, "rgbpath"}, {MODULEPATH, "modulepath"}, {INPUTDEVICES, "inputdevices"}, {LOGFILEPATH, "logfile"}, @@ -122,11 +121,6 @@ xf86parseFilesSection (void) strcat (ptr->file_fontpath, str); xf86conffree (val.str); break; - case RGBPATH: - if (xf86getSubToken (&(ptr->file_comment)) != STRING) - Error (QUOTE_MSG, "RGBPath"); - ptr->file_rgbpath = val.str; - break; case MODULEPATH: if (xf86getSubToken (&(ptr->file_comment)) != STRING) Error (QUOTE_MSG, "ModulePath"); @@ -216,8 +210,6 @@ xf86printFileSection (FILE * cf, XF86ConfFilesPtr ptr) fprintf (cf, "%s", ptr->file_comment); if (ptr->file_logfile) fprintf (cf, "\tLogFile \"%s\"\n", ptr->file_logfile); - if (ptr->file_rgbpath) - fprintf (cf, "\tRgbPath \"%s\"\n", ptr->file_rgbpath); if (ptr->file_modulepath) { s = ptr->file_modulepath; @@ -272,7 +264,6 @@ xf86freeFiles (XF86ConfFilesPtr p) return; TestFree (p->file_logfile); - TestFree (p->file_rgbpath); TestFree (p->file_modulepath); TestFree (p->file_inputdevs); TestFree (p->file_fontpath); diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c index 5b60a5155..730ea0cab 100644 --- a/hw/xfree86/parser/Flags.c +++ b/hw/xfree86/parser/Flags.c @@ -330,7 +330,7 @@ xf86findOption (XF86OptionPtr list, const char *name) * returned. If the option is not found, a NULL is returned. */ -char * +__attribute__((visibility("default"))) char * xf86findOptionValue (XF86OptionPtr list, const char *name) { XF86OptionPtr p = xf86findOption (list, name); diff --git a/hw/xfree86/parser/Monitor.c b/hw/xfree86/parser/Monitor.c index 4bff4b23b..9d533125e 100644 --- a/hw/xfree86/parser/Monitor.c +++ b/hw/xfree86/parser/Monitor.c @@ -688,8 +688,6 @@ xf86printMonitorSection (FILE * cf, XF86ConfMonitorPtr ptr) fprintf (cf, "\tDisplaySize %d\t%d\n", ptr->mon_width, ptr->mon_height); - if ( ptr->mon_n_hsync || ptr->mon_n_vrefresh ) - fprintf(cf," ### Comment all HorizSync and VertRefresh values to use DDC:\n"); for (i = 0; i < ptr->mon_n_hsync; i++) { fprintf (cf, "\tHorizSync %2.1f - %2.1f\n", diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c index 55c7eb55f..e7989d107 100644 --- a/hw/xfree86/parser/scan.c +++ b/hw/xfree86/parser/scan.c @@ -948,7 +948,7 @@ StringToToken (char *str, xf86ConfigSymTabRec * tab) * Compare two names. The characters '_', ' ', and '\t' are ignored * in the comparison. */ -int +__attribute__((visibility("default"))) int xf86nameCompare (const char *s1, const char *s2) { char c1, c2; diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h index dc30823cc..a078361d3 100644 --- a/hw/xfree86/parser/xf86Parser.h +++ b/hw/xfree86/parser/xf86Parser.h @@ -71,7 +71,6 @@ typedef struct { char *file_logfile; - char *file_rgbpath; char *file_modulepath; char *file_inputdevs; char *file_fontpath; diff --git a/hw/xfree86/parser/xf86tokens.h b/hw/xfree86/parser/xf86tokens.h index 822bbb9b7..786dac145 100644 --- a/hw/xfree86/parser/xf86tokens.h +++ b/hw/xfree86/parser/xf86tokens.h @@ -97,7 +97,6 @@ typedef enum { /* File tokens */ FONTPATH, - RGBPATH, MODULEPATH, INPUTDEVICES, LOGFILEPATH, diff --git a/hw/xfree86/rac/xf86RAC.c b/hw/xfree86/rac/xf86RAC.c index eb05f2e14..8985f38b0 100644 --- a/hw/xfree86/rac/xf86RAC.c +++ b/hw/xfree86/rac/xf86RAC.c @@ -139,7 +139,8 @@ static void RACCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc ); static void RACClearToBackground (WindowPtr pWin, int x, int y, int w, int h, Bool generateExposures ); -static PixmapPtr RACCreatePixmap(ScreenPtr pScreen, int w, int h, int depth); +static PixmapPtr RACCreatePixmap(ScreenPtr pScreen, int w, int h, int depth, + unsigned usage_hint); static Bool RACCreateGC(GCPtr pGC); static Bool RACSaveScreen(ScreenPtr pScreen, Bool unblank); static void RACStoreColors (ColormapPtr pmap, int ndef, xColorItem *pdefs); @@ -440,14 +441,14 @@ RACClearToBackground ( } static PixmapPtr -RACCreatePixmap(ScreenPtr pScreen, int w, int h, int depth) +RACCreatePixmap(ScreenPtr pScreen, int w, int h, int depth, unsigned usage_hint) { PixmapPtr pPix; DPRINT_S("RACCreatePixmap",pScreen->myNum); SCREEN_PROLOG ( CreatePixmap); ENABLE; - pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth); + pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth, usage_hint); SCREEN_EPILOG (CreatePixmap, RACCreatePixmap); return pPix; diff --git a/hw/xfree86/shadowfb/shadow.c b/hw/xfree86/shadowfb/shadow.c index c3bd61c1e..74beefb67 100644 --- a/hw/xfree86/shadowfb/shadow.c +++ b/hw/xfree86/shadowfb/shadow.c @@ -1027,7 +1027,7 @@ ShadowPolyRectangle( offset1 = offset2 >> 1; offset3 = offset2 - offset1; - pBoxInit = (BoxPtr)ALLOCATE_LOCAL(nRects * 4 * sizeof(BoxRec)); + pBoxInit = (BoxPtr)xalloc(nRects * 4 * sizeof(BoxRec)); pbox = pBoxInit; while(nRects--) { @@ -1078,7 +1078,7 @@ ShadowPolyRectangle( if(pPriv->preRefresh) (*pPriv->preRefresh)(pPriv->pScrn, num, pBoxInit); } else { - DEALLOCATE_LOCAL(pBoxInit); + xfree(pBoxInit); } } } @@ -1090,7 +1090,7 @@ ShadowPolyRectangle( } else if(num) { if(pPriv->postRefresh) (*pPriv->postRefresh)(pPriv->pScrn, num, pBoxInit); - DEALLOCATE_LOCAL(pBoxInit); + xfree(pBoxInit); } SHADOW_GC_OP_EPILOGUE(pGC); diff --git a/hw/xfree86/utils/xorgcfg/expert.c b/hw/xfree86/utils/xorgcfg/expert.c index 5c22a6e70..bb6960ce7 100644 --- a/hw/xfree86/utils/xorgcfg/expert.c +++ b/hw/xfree86/utils/xorgcfg/expert.c @@ -472,15 +472,6 @@ CreateFiles(TreeNode *files) files->child = node; files->update = UpdateFiles; - if (XF86RGB_path) - value = XF86RGB_path; - else - value = file->file_rgbpath ? file->file_rgbpath : ""; - node->next = NewNode(files, NULL, NULL, files->node, - (TreeData*)XtCalloc(1, sizeof(TreeData))); - node = node->next; - CreateFilesField(node, "RgbPath", value); - w = XtVaCreateManagedWidget("ModulePath", toggleWidgetClass, tree, XtNtreeParent, files->node, NULL); node->next = modulepath = NewNode(files, w, w, files->node, NULL); @@ -523,15 +514,6 @@ UpdateFiles(TreeNode *files) XF86Config->conf_files->file_logfile = XtNewString(str); else XF86Config->conf_files->file_logfile = NULL; - - /* LogFile */ - files = files->next; - XtVaGetValues(files->data->files.text, XtNstring, &str, NULL); - XtFree(XF86Config->conf_files->file_rgbpath); - if (*str) - XF86Config->conf_files->file_rgbpath = XtNewString(str); - else - XF86Config->conf_files->file_rgbpath = NULL; } /* FontPath */ diff --git a/hw/xfree86/utils/xorgcfg/interface.c b/hw/xfree86/utils/xorgcfg/interface.c index 9b22dc7cb..cb39624ca 100644 --- a/hw/xfree86/utils/xorgcfg/interface.c +++ b/hw/xfree86/utils/xorgcfg/interface.c @@ -213,7 +213,6 @@ Usage(void) " -modulepath <module-path> "__XSERVERNAME__" modules location.\n" " -serverpath <server-path> X server to start (if $DISPLAY is not defined).\n" " -fontpath <font-path> Font path for fonts.\n" -" -rgbpath <rgb-path> Where the rgb.txt file is located.\n" #ifdef HAS_NCURSES " -textmode Use this option for the text only interface.\n" #endif @@ -270,10 +269,7 @@ main(int argc, char *argv[]) } else if (strcmp(argv[i], "-fontpath") == 0) { if (i + 1 < argc) XF86Font_path = argv[++i]; - } else if (strcmp(argv[i], "-rgbpath") == 0) { - if (i + 1 < argc) - XF86RGB_path = argv[++i]; - } + } #ifdef HAS_NCURSES else if (strcmp(argv[i], "-textmode") == 0) textmode = True; diff --git a/hw/xfree86/utils/xorgcfg/startx.c b/hw/xfree86/utils/xorgcfg/startx.c index 7b730c9aa..507afbf15 100644 --- a/hw/xfree86/utils/xorgcfg/startx.c +++ b/hw/xfree86/utils/xorgcfg/startx.c @@ -73,9 +73,6 @@ startx(void) if (XF86Font_path && ((len = sizeof(commandline) - c_pos) > 0)) c_pos += XmuSnprintf(commandline + c_pos,len, " -fontpath %s",XF86Font_path); - if (XF86RGB_path && ((len = sizeof(commandline) - c_pos) > 0)) - c_pos += XmuSnprintf(commandline + c_pos,len, - " -rgbpath %s",XF86RGB_path); if (system(commandline) != 0) { fprintf(stderr, "Failed to run \"X -configure\".\n"); diff --git a/hw/xfree86/utils/xorgcfg/xorgcfg.man.pre b/hw/xfree86/utils/xorgcfg/xorgcfg.man.pre index 45fbb4969..71e75e2d8 100644 --- a/hw/xfree86/utils/xorgcfg/xorgcfg.man.pre +++ b/hw/xfree86/utils/xorgcfg/xorgcfg.man.pre @@ -84,10 +84,6 @@ __xservername__ binary. Specifies the path to the fonts that should be used by the server started by xorgcfg. .TP 8 -.I -rgbpath -Specifies the path to the rgb.txt file that should be used by the server -started by xorgcfg, if any. -.TP 8 .I -textmode If xorgcfg was compiled with support for ncurses, this option makes xorgcfg enter a text mode interface. diff --git a/hw/xfree86/utils/xorgconfig/xorgconfig.c b/hw/xfree86/utils/xorgconfig/xorgconfig.c index f50b4e225..efabc9d1f 100644 --- a/hw/xfree86/utils/xorgconfig/xorgconfig.c +++ b/hw/xfree86/utils/xorgconfig/xorgconfig.c @@ -1898,22 +1898,10 @@ static char *XF86Config_firstchunk_text = "\n" "Section \"Files\"\n" "\n" -"# The location of the RGB database. Note, this is the name of the\n" -"# file minus the extension (like \".txt\" or \".db\"). There is normally\n" -"# no need to change the default.\n" -"\n" -"# RgbPath \"" TREEROOTSHARE "/rgb\"\n" -"\n" "# Multiple FontPath entries are allowed (which are concatenated together),\n" "# as well as specifying multiple comma-separated entries in one FontPath\n" "# command (or a combination of both methods)\n" "# \n" -#if 0 -"# If you don't have a floating point coprocessor and emacs, Mosaic or other\n" -"# programs take long to start up, try moving the Type1 directory\n" -"# to the end of this list (or comment it out).\n" -#endif -"# \n" "\n"; static char *XF86Config_fontpaths[] = @@ -1923,7 +1911,6 @@ static char *XF86Config_fontpaths[] = "/misc/", "/75dpi/:unscaled", "/100dpi/:unscaled", - "/Speedo/", "/Type1/", "/TrueType/", "/freefont/", diff --git a/hw/xfree86/vbe/vbeModes.c b/hw/xfree86/vbe/vbeModes.c index ef2c728f4..061d7b695 100644 --- a/hw/xfree86/vbe/vbeModes.c +++ b/hw/xfree86/vbe/vbeModes.c @@ -152,34 +152,6 @@ CheckMode(ScrnInfoPtr pScrn, vbeInfoPtr pVbe, VbeInfoBlock *vbe, int id, xf86ErrorFVerb(DEBUG_VERB, "*"); } - /* - * Check if there's a valid monitor mode that this one can be matched - * up with. The actual matching is done later. - */ - if (modeOK) { - Bool sizeMatch = FALSE; - modeOK = FALSE; - for (p = pScrn->monitor->Modes; p != NULL; p = p->next) { - if ((p->HDisplay != mode->XResolution) || - (p->VDisplay != mode->YResolution) || - (p->Flags & (V_INTERLACE | V_DBLSCAN | V_CLKDIV2))) - continue; - sizeMatch = TRUE; - /* XXX could support the various V_ flags */ - status = xf86CheckModeForMonitor(p, pScrn->monitor); - if (status == MODE_OK) { - modeOK = TRUE; - break; - } - } - if (sizeMatch && !modeOK) { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Not using built-in mode \"%dx%d\" (%s)\n", - mode->XResolution, mode->YResolution, - xf86ModeStatusToString(status)); - } - } - xf86ErrorFVerb(DEBUG_VERB, "Mode: %x (%dx%d)\n", id, mode->XResolution, mode->YResolution); xf86ErrorFVerb(DEBUG_VERB, diff --git a/hw/xfree86/vgahw/vgaCmap.c b/hw/xfree86/vgahw/vgaCmap.c index 609376a57..44043c6c7 100644 --- a/hw/xfree86/vgahw/vgaCmap.c +++ b/hw/xfree86/vgahw/vgaCmap.c @@ -236,9 +236,9 @@ vgaInstallColormap(pmap) else entries = pmap->pVisual->ColormapEntries; - ppix = (Pixel *)ALLOCATE_LOCAL( entries * sizeof(Pixel)); - prgb = (xrgb *)ALLOCATE_LOCAL( entries * sizeof(xrgb)); - defs = (xColorItem *)ALLOCATE_LOCAL(entries * sizeof(xColorItem)); + ppix = (Pixel *)xalloc( entries * sizeof(Pixel)); + prgb = (xrgb *)xalloc( entries * sizeof(xrgb)); + defs = (xColorItem *)xalloc(entries * sizeof(xColorItem)); if ( oldmap != NOMAPYET) WalkTree( pmap->pScreen, TellLostMap, &oldmap->mid); @@ -261,9 +261,9 @@ vgaInstallColormap(pmap) WalkTree(pmap->pScreen, TellGainedMap, &pmap->mid); - DEALLOCATE_LOCAL(ppix); - DEALLOCATE_LOCAL(prgb); - DEALLOCATE_LOCAL(defs); + xfree(ppix); + xfree(prgb); + xfree(defs); } diff --git a/hw/xfree86/xaa/xaaBitBlt.c b/hw/xfree86/xaa/xaaBitBlt.c index 6c81f6413..ebba74e55 100644 --- a/hw/xfree86/xaa/xaaBitBlt.c +++ b/hw/xfree86/xaa/xaaBitBlt.c @@ -186,7 +186,7 @@ XAABitBlt( /* Do bit blitting */ numRects = REGION_NUM_RECTS(&rgnDst); if (numRects && width && height) { - if(!(pptSrc = (DDXPointPtr)ALLOCATE_LOCAL(numRects * + if(!(pptSrc = (DDXPointPtr)xalloc(numRects * sizeof(DDXPointRec)))) { REGION_UNINIT(pGC->pScreen, &rgnDst); if (freeSrcClip) @@ -201,7 +201,7 @@ XAABitBlt( } (*doBitBlt) (pSrcDrawable, pDstDrawable, pGC, &rgnDst, pptSrc); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); } prgnExposed = NULL; diff --git a/hw/xfree86/xaa/xaaCpyArea.c b/hw/xfree86/xaa/xaaCpyArea.c index 89b4441ab..6c991e100 100644 --- a/hw/xfree86/xaa/xaaCpyArea.c +++ b/hw/xfree86/xaa/xaaCpyArea.c @@ -108,12 +108,12 @@ XAADoBitBlt( if (nbox > 1) { /* keep ordering in each band, reverse order of bands */ - pboxNew1 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); + pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); if(!pboxNew1) return; - pptNew1 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pptNew1) { - DEALLOCATE_LOCAL(pboxNew1); + xfree(pboxNew1); return; } pboxBase = pboxNext = pbox+nbox-1; @@ -145,14 +145,14 @@ XAADoBitBlt( if (nbox > 1) { /* reverse order of rects in each band */ - pboxNew2 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); - pptNew2 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); + pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pboxNew2 || !pptNew2) { - if (pptNew2) DEALLOCATE_LOCAL(pptNew2); - if (pboxNew2) DEALLOCATE_LOCAL(pboxNew2); + if (pptNew2) xfree(pptNew2); + if (pboxNew2) xfree(pboxNew2); if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } return; } @@ -183,12 +183,12 @@ XAADoBitBlt( xdir, ydir, pGC->alu, pGC->planemask); if (pboxNew2) { - DEALLOCATE_LOCAL(pptNew2); - DEALLOCATE_LOCAL(pboxNew2); + xfree(pptNew2); + xfree(pboxNew2); } if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } } diff --git a/hw/xfree86/xaa/xaaCpyWin.c b/hw/xfree86/xaa/xaaCpyWin.c index 1ff955c6c..ecdc9a3be 100644 --- a/hw/xfree86/xaa/xaaCpyWin.c +++ b/hw/xfree86/xaa/xaaCpyWin.c @@ -59,7 +59,7 @@ XAACopyWindow( pbox = REGION_RECTS(&rgnDst); nbox = REGION_NUM_RECTS(&rgnDst); if(!nbox || - !(pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))) { + !(pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec)))) { REGION_UNINIT(pScreen, &rgnDst); return; } @@ -77,6 +77,6 @@ XAACopyWindow( XAADoBitBlt((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot, &(infoRec->ScratchGC), &rgnDst, pptSrc); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); REGION_UNINIT(pScreen, &rgnDst); } diff --git a/hw/xfree86/xaa/xaaInit.c b/hw/xfree86/xaa/xaaInit.c index f1757c866..892cbcfc3 100644 --- a/hw/xfree86/xaa/xaaInit.c +++ b/hw/xfree86/xaa/xaaInit.c @@ -30,7 +30,8 @@ static void XAAGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h, char *pdstLine); static void XAAGetSpans(DrawablePtr pDrawable, int wMax, DDXPointPtr ppt, int *pwidth, int nspans, char *pdstStart); -static PixmapPtr XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth); +static PixmapPtr XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth, + unsigned usage_hint); static Bool XAADestroyPixmap(PixmapPtr pPixmap); static Bool XAAEnterVT (int index, int flags); static void XAALeaveVT (int index, int flags); @@ -295,7 +296,8 @@ XAAPixmapBPP (ScreenPtr pScreen, int depth) DestroyPixmapProcPtr destroyPixmap; XAA_SCREEN_PROLOGUE (pScreen, CreatePixmap); - pPix = (*pScreen->CreatePixmap) (pScreen, 1, 1, depth); + pPix = (*pScreen->CreatePixmap) (pScreen, 1, 1, depth, + CREATE_PIXMAP_USAGE_SCRATCH); XAA_SCREEN_EPILOGUE (pScreen, CreatePixmap, XAACreatePixmap); if (!pPix) return 0; @@ -326,7 +328,7 @@ XAAInitializeOffscreenDepths (ScreenPtr pScreen) } static PixmapPtr -XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth) +XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth, unsigned usage_hint) { XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; @@ -372,7 +374,7 @@ XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth) } XAA_SCREEN_PROLOGUE (pScreen, CreatePixmap); - pPix = (*pScreen->CreatePixmap) (pScreen, 0, 0, depth); + pPix = (*pScreen->CreatePixmap) (pScreen, 0, 0, depth, usage_hint); XAA_SCREEN_EPILOGUE (pScreen, CreatePixmap, XAACreatePixmap); if (!pPix) { @@ -404,7 +406,7 @@ XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth) } BAILOUT: XAA_SCREEN_PROLOGUE (pScreen, CreatePixmap); - pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth); + pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth, usage_hint); XAA_SCREEN_EPILOGUE (pScreen, CreatePixmap, XAACreatePixmap); if(pPix) { diff --git a/hw/xfree86/xaa/xaaNonTEText.c b/hw/xfree86/xaa/xaaNonTEText.c index a5608c922..d4661e879 100644 --- a/hw/xfree86/xaa/xaaNonTEText.c +++ b/hw/xfree86/xaa/xaaNonTEText.c @@ -291,7 +291,7 @@ PolyGlyphBltAsSingleBitmap ( pitch = (Right - Left + 31) >> 5; size = (pitch << 2) * (Bottom - Top); - block = (CARD32*)ALLOCATE_LOCAL(size); + block = (CARD32*)xalloc(size); bzero(block, size); topLine = 10000; botLine = -10000; @@ -350,7 +350,7 @@ PolyGlyphBltAsSingleBitmap ( nbox--; pbox++; } - DEALLOCATE_LOCAL(block); + xfree(block); } static void diff --git a/hw/xfree86/xaa/xaaOverlay.c b/hw/xfree86/xaa/xaaOverlay.c index 86b30ff22..273183e10 100644 --- a/hw/xfree86/xaa/xaaOverlay.c +++ b/hw/xfree86/xaa/xaaOverlay.c @@ -69,7 +69,7 @@ XAACopyWindow8_32( pbox = REGION_RECTS(&rgnDst); nbox = REGION_NUM_RECTS(&rgnDst); if(!nbox || - !(pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))) { + !(pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec)))) { REGION_UNINIT(pScreen, &rgnDst); return; } @@ -87,7 +87,7 @@ XAACopyWindow8_32( XAADoBitBlt((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot, &(infoRec->ScratchGC), &rgnDst, pptSrc); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); REGION_UNINIT(pScreen, &rgnDst); if(freeReg) REGION_DESTROY(pScreen, borderClip); diff --git a/hw/xfree86/xaa/xaaOverlayDF.c b/hw/xfree86/xaa/xaaOverlayDF.c index 508b5c6f1..64ca998ee 100644 --- a/hw/xfree86/xaa/xaaOverlayDF.c +++ b/hw/xfree86/xaa/xaaOverlayDF.c @@ -349,7 +349,7 @@ XAAOverCopyWindow( nbox = REGION_NUM_RECTS(&rgnDst); if(nbox && - (pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))) { + (pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec)))) { pbox = REGION_RECTS(&rgnDst); for (i = nbox, ppt = pptSrc; i--; ppt++, pbox++) { @@ -367,7 +367,7 @@ XAAOverCopyWindow( &(infoRec->ScratchGC), &rgnDst, pptSrc); } - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); } REGION_UNINIT(pScreen, &rgnDst); @@ -379,7 +379,7 @@ XAAOverCopyWindow( REGION_INTERSECT(pScreen, &rgnDst, &rgnDst, prgnSrc); nbox = REGION_NUM_RECTS(&rgnDst); if(nbox && - (pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))){ + (pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec)))){ pbox = REGION_RECTS(&rgnDst); for (i = nbox, ppt = pptSrc; i--; ppt++, pbox++) { @@ -390,7 +390,7 @@ XAAOverCopyWindow( SWITCH_DEPTH(pScrn->depth); XAADoBitBlt((DrawablePtr)pRoot, (DrawablePtr)pRoot, &(infoRec->ScratchGC), &rgnDst, pptSrc); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); } } REGION_UNINIT(pScreen, &rgnDst); diff --git a/hw/xfree86/xaa/xaaPCache.c b/hw/xfree86/xaa/xaaPCache.c index 441788cd8..d05aaf22c 100644 --- a/hw/xfree86/xaa/xaaPCache.c +++ b/hw/xfree86/xaa/xaaPCache.c @@ -1557,7 +1557,7 @@ XAACacheMonoStipple(ScrnInfoPtr pScrn, PixmapPtr pPix) pad = BitmapBytePad(pCache->w * bpp); dwords = pad >> 2; - dstPtr = data = (unsigned char*)ALLOCATE_LOCAL(pad * pCache->h); + dstPtr = data = (unsigned char*)xalloc(pad * pCache->h); srcPtr = (unsigned char*)pPix->devPrivate.ptr; if(infoRec->ScreenToScreenColorExpandFillFlags & BIT_ORDER_IN_BYTE_MSBFIRST) @@ -1588,7 +1588,7 @@ XAACacheMonoStipple(ScrnInfoPtr pScrn, PixmapPtr pPix) pScrn, pCache->x, pCache->y, pCache->w, pCache->h, data, pad, bpp, pScrn->depth); - DEALLOCATE_LOCAL(data); + xfree(data); return pCache; } @@ -1967,7 +1967,7 @@ XAAWriteMono8x8PatternToCache( pad = BitmapBytePad(pCache->w * pScrn->bitsPerPixel); - data = (unsigned char*)ALLOCATE_LOCAL(pad * pCache->h); + data = (unsigned char*)xalloc(pad * pCache->h); if(!data) return; if(infoRec->Mono8x8PatternFillFlags & HARDWARE_PATTERN_PROGRAMMED_ORIGIN) { @@ -1991,7 +1991,7 @@ XAAWriteMono8x8PatternToCache( (*infoRec->WritePixmapToCache)(pScrn, pCache->x, pCache->y, pCache->w, pCache->h, data, pad, pScrn->bitsPerPixel, pScrn->depth); - DEALLOCATE_LOCAL(data); + xfree(data); } void @@ -2012,7 +2012,7 @@ XAAWriteColor8x8PatternToCache( if(pixPriv->flags & REDUCIBLE_TO_2_COLOR) { CARD32* ptr; pad = BitmapBytePad(pCache->w); - data = (unsigned char*)ALLOCATE_LOCAL(pad * pCache->h); + data = (unsigned char*)xalloc(pad * pCache->h); if(!data) return; if(infoRec->Color8x8PatternFillFlags & @@ -2037,7 +2037,7 @@ XAAWriteColor8x8PatternToCache( (*infoRec->WriteBitmapToCache)(pScrn, pCache->x, pCache->y, pCache->w, pCache->h, data, pad, pCache->fg, pCache->bg); - DEALLOCATE_LOCAL(data); + xfree(data); return; } @@ -2046,7 +2046,7 @@ XAAWriteColor8x8PatternToCache( w = min(8,pPix->drawable.width); pad = BitmapBytePad(pCache->w * pScrn->bitsPerPixel); - data = (unsigned char*)ALLOCATE_LOCAL(pad * pCache->h); + data = (unsigned char*)xalloc(pad * pCache->h); if(!data) return; /* Write and expand horizontally. */ @@ -2085,7 +2085,7 @@ XAAWriteColor8x8PatternToCache( (*infoRec->WritePixmapToCache)(pScrn, pCache->x, pCache->y, pCache->w, pCache->h, data, pad, pScrn->bitsPerPixel, pScrn->depth); - DEALLOCATE_LOCAL(data); + xfree(data); } diff --git a/hw/xfree86/xaa/xaaPict.c b/hw/xfree86/xaa/xaaPict.c index 55f0f6e99..74e90e3b6 100644 --- a/hw/xfree86/xaa/xaaPict.c +++ b/hw/xfree86/xaa/xaaPict.c @@ -471,7 +471,7 @@ XAACompositeSrcCopy (PicturePtr pSrc, REGION_UNINIT(pScreen, ®ion); return; } - pptSrc = ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pptSrc = xalloc(sizeof(DDXPointRec) * nbox); if (!pptSrc) { REGION_UNINIT(pScreen, ®ion); return; @@ -489,7 +489,7 @@ XAACompositeSrcCopy (PicturePtr pSrc, XAADoBitBlt(pSrc->pDrawable, pDst->pDrawable, &infoRec->ScratchGC, ®ion, pptSrc); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); REGION_UNINIT(pScreen, ®ion); return; } diff --git a/hw/xfree86/xaa/xaaTEGlyph.c b/hw/xfree86/xaa/xaaTEGlyph.c index c8d65968b..cb60266ea 100644 --- a/hw/xfree86/xaa/xaaTEGlyph.c +++ b/hw/xfree86/xaa/xaaTEGlyph.c @@ -301,7 +301,7 @@ EXPNAME(XAATEGlyphRenderer3)( } dwords = ((3 * w + 31) >> 5) * h; - mem = (CARD32*)ALLOCATE_LOCAL(((w + 31) >> 3) * sizeof(char)); + mem = (CARD32*)xalloc(((w + 31) >> 3) * sizeof(char)); if (!mem) return; (*infoRec->SubsequentCPUToScreenColorExpandFill)(pScrn, x, y, w, h, 0); @@ -321,7 +321,7 @@ EXPNAME(XAATEGlyphRenderer3)( DrawTextScanline3(base, mem, w); } - DEALLOCATE_LOCAL(mem); + xfree(mem); if((infoRec->TEGlyphRendererFlags & CPU_TRANSFER_PAD_QWORD) && (dwords & 1)) { @@ -478,7 +478,7 @@ EXPNAME(XAATEGlyphRendererScanline3)( w += skipleft; x -= skipleft; - mem = (CARD32*)ALLOCATE_LOCAL(((w + 31) >> 3) * sizeof(char)); + mem = (CARD32*)xalloc(((w + 31) >> 3) * sizeof(char)); if (!mem) return; (*infoRec->SubsequentScanlineCPUToScreenColorExpandFill)( @@ -495,7 +495,7 @@ EXPNAME(XAATEGlyphRendererScanline3)( bufferNo = 0; } - DEALLOCATE_LOCAL(mem); + xfree(mem); THE_END: diff --git a/hw/xfree86/xf4bpp/mfbimggblt.c b/hw/xfree86/xf4bpp/mfbimggblt.c index 711a16ee5..4f9561161 100644 --- a/hw/xfree86/xf4bpp/mfbimggblt.c +++ b/hw/xfree86/xf4bpp/mfbimggblt.c @@ -356,7 +356,7 @@ doImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase,infop) int getWidth; /* bits to get from glyph */ #endif - if(!(ppos = (TEXTPOS *)ALLOCATE_LOCAL(nglyph * sizeof(TEXTPOS)))) + if(!(ppos = (TEXTPOS *)xalloc(nglyph * sizeof(TEXTPOS)))) return; pdstBase = pdstBase + (widthDst * y) + (x >> PWSH); @@ -495,7 +495,7 @@ doImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase,infop) } } /* for each glyph */ } /* while nbox-- */ - DEALLOCATE_LOCAL(ppos); + xfree(ppos); break; } default: diff --git a/hw/xfree86/xf4bpp/ppcCpArea.c b/hw/xfree86/xf4bpp/ppcCpArea.c index 891ba4b89..9bdaf89e3 100644 --- a/hw/xfree86/xf4bpp/ppcCpArea.c +++ b/hw/xfree86/xf4bpp/ppcCpArea.c @@ -110,13 +110,13 @@ vga16DoBitblt if (nbox > 1) { /* keep ordering in each band, reverse order of bands */ - pboxNew1 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); + pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); if(!pboxNew1) return; - pptNew1 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pptNew1) { - DEALLOCATE_LOCAL(pboxNew1); + xfree(pboxNew1); return; } pboxBase = pboxNext = pbox+nbox-1; @@ -146,16 +146,16 @@ vga16DoBitblt if (nbox > 1) { /* reverse order of rects in each band */ - pboxNew2 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); - pptNew2 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); + pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pboxNew2 || !pptNew2) { - if (pptNew2) DEALLOCATE_LOCAL(pptNew2); - if (pboxNew2) DEALLOCATE_LOCAL(pboxNew2); + if (pptNew2) xfree(pptNew2); + if (pboxNew2) xfree(pboxNew2); if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } return; } @@ -207,13 +207,13 @@ vga16DoBitblt } if (pboxNew2) { - DEALLOCATE_LOCAL(pptNew2); - DEALLOCATE_LOCAL(pboxNew2); + xfree(pptNew2); + xfree(pboxNew2); } if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } } @@ -430,7 +430,7 @@ int dstx, dsty; numRects = REGION_NUM_RECTS(&rgnDst); if (numRects && width && height) { - if(!(pptSrc = (DDXPointPtr)ALLOCATE_LOCAL(numRects * + if(!(pptSrc = (DDXPointPtr)xalloc(numRects * sizeof(DDXPointRec)))) { REGION_UNINIT(pGC->pScreen, &rgnDst); @@ -448,7 +448,7 @@ int dstx, dsty; vga16DoBitblt(pSrcDrawable, pDstDrawable, pGC->alu, &rgnDst, pptSrc, pGC->planemask ); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); } prgnExposed = NULL; diff --git a/hw/xfree86/xf4bpp/ppcFillRct.c b/hw/xfree86/xf4bpp/ppcFillRct.c index 4be732fb5..3422c8092 100644 --- a/hw/xfree86/xf4bpp/ppcFillRct.c +++ b/hw/xfree86/xf4bpp/ppcFillRct.c @@ -106,7 +106,7 @@ xf4bppPolyFillRect(pDrawable, pGC, nrectFill, prectInit) numRects = REGION_NUM_RECTS(prgnClip) * nrectFill; if (numRects > NUM_STACK_RECTS) { - pboxClippedBase = (BoxPtr)ALLOCATE_LOCAL(numRects * sizeof(BoxRec)); + pboxClippedBase = (BoxPtr)xalloc(numRects * sizeof(BoxRec)); if (!pboxClippedBase) return; } @@ -211,5 +211,5 @@ xf4bppPolyFillRect(pDrawable, pGC, nrectFill, prectInit) xf4bppFillArea((WindowPtr)pDrawable, pboxClipped-pboxClippedBase, pboxClippedBase, pGC); if (pboxClippedBase != stackRects) - DEALLOCATE_LOCAL(pboxClippedBase); + xfree(pboxClippedBase); } diff --git a/hw/xfree86/xf4bpp/ppcIO.c b/hw/xfree86/xf4bpp/ppcIO.c index 313fcb0f8..83952d12d 100644 --- a/hw/xfree86/xf4bpp/ppcIO.c +++ b/hw/xfree86/xf4bpp/ppcIO.c @@ -146,7 +146,7 @@ v16CreateScreenResources /* create a pixmap with no data, then redirect it to point to * the screen */ - pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth); + pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth, 0); if (!pPixmap) return FALSE; diff --git a/hw/xfree86/xf4bpp/ppcImg.c b/hw/xfree86/xf4bpp/ppcImg.c index 3691587ae..33c6b89c5 100644 --- a/hw/xfree86/xf4bpp/ppcImg.c +++ b/hw/xfree86/xf4bpp/ppcImg.c @@ -79,13 +79,14 @@ xf4bppGetImage( pDraw, sx, sy, w, h, format, planeMask, pdstLine ) != (unsigned)( 1 << pDraw->depth ) - 1 ) { pGC = GetScratchGC( depth, pDraw->pScreen ) ; pPixmap = (PixmapPtr) - (* pDraw->pScreen->CreatePixmap)( pDraw->pScreen, w, h, depth ) ; + (* pDraw->pScreen->CreatePixmap)( pDraw->pScreen, w, h, depth, + CREATE_PIXMAP_USAGE_SCRATCH) ; gcv[0] = GXcopy ; gcv[1] = planeMask ; DoChangeGC( pGC, GCPlaneMask | GCFunction, gcv, 0 ) ; ValidateGC( (DrawablePtr)pPixmap, pGC ) ; - pbits = (char *)ALLOCATE_LOCAL(w); + pbits = (char *)xalloc(w); for ( i = 0 ; i < h ; i++ ) { pt.x = sx ; @@ -101,7 +102,7 @@ xf4bppGetImage( pDraw, sx, sy, w, h, format, planeMask, pdstLine ) pDst += linelength ; } - DEALLOCATE_LOCAL(pbits) ; + xfree(pbits) ; (* pGC->pScreen->DestroyPixmap)( pPixmap ) ; FreeScratchGC( pGC ) ; return ; diff --git a/hw/xfree86/xf4bpp/ppcPixFS.c b/hw/xfree86/xf4bpp/ppcPixFS.c index 91b753255..9fd29efce 100644 --- a/hw/xfree86/xf4bpp/ppcPixFS.c +++ b/hw/xfree86/xf4bpp/ppcPixFS.c @@ -128,13 +128,13 @@ xf4bppSolidPixmapFS( pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted ) return ; n = nInit * miFindMaxBand(pGC->pCompositeClip) ; - if ( !( pwidthFree = (int *) ALLOCATE_LOCAL( n * sizeof( int ) ) ) ) + if ( !( pwidthFree = (int *) xalloc( n * sizeof( int ) ) ) ) return ; pwidth = pwidthFree ; if ( !( pptFree = (DDXPointRec *) - ALLOCATE_LOCAL( n * sizeof( DDXPointRec ) ) ) ) { - DEALLOCATE_LOCAL( pwidth ) ; + xalloc( n * sizeof( DDXPointRec ) ) ) ) { + xfree( pwidth ) ; return ; } ppt = pptFree ; @@ -160,8 +160,8 @@ xf4bppSolidPixmapFS( pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted ) *addrl = ( *addrl & npm ) | ( pm & DoRop( alu, fg, *addrl ) ) ; #endif /* PURDUE */ } - DEALLOCATE_LOCAL( pptFree ) ; - DEALLOCATE_LOCAL( pwidthFree ) ; + xfree( pptFree ) ; + xfree( pwidthFree ) ; return ; } @@ -316,8 +316,8 @@ int fSorted ; ppt++ ; pwidth++ ; } - DEALLOCATE_LOCAL( pptFree ) ; - DEALLOCATE_LOCAL( pwidthFree ) ; + xfree( pptFree ) ; + xfree( pwidthFree ) ; return ; } @@ -416,8 +416,8 @@ int fSorted ; #endif /* PURDUE */ } } - DEALLOCATE_LOCAL( pptFree ) ; - DEALLOCATE_LOCAL( pwidthFree ) ; + xfree( pptFree ) ; + xfree( pwidthFree ) ; return ; } @@ -496,7 +496,7 @@ int fSorted ; #endif /* PURDUE */ } } - DEALLOCATE_LOCAL( pptFree ) ; - DEALLOCATE_LOCAL( pwidthFree ) ; + xfree( pptFree ) ; + xfree( pwidthFree ) ; return ; } diff --git a/hw/xfree86/xf4bpp/ppcPixmap.c b/hw/xfree86/xf4bpp/ppcPixmap.c index 2079e2ee6..d9a0ccae4 100644 --- a/hw/xfree86/xf4bpp/ppcPixmap.c +++ b/hw/xfree86/xf4bpp/ppcPixmap.c @@ -82,16 +82,17 @@ SOFTWARE. #include "scrnintstr.h" PixmapPtr -xf4bppCreatePixmap( pScreen, width, height, depth ) +xf4bppCreatePixmap( pScreen, width, height, depth, usage_hint ) ScreenPtr pScreen ; int width ; int height ; int depth ; + unsigned usage_hint ; { register PixmapPtr pPixmap = (PixmapPtr)NULL; size_t size ; - TRACE(("xf4bppCreatePixmap(pScreen=0x%x, width=%d, height=%d, depth=%d)\n", pScreen, width, height, depth)) ; + TRACE(("xf4bppCreatePixmap(pScreen=0x%x, width=%d, height=%d, depth=%d, usage_hint=%d)\n", pScreen, width, height, depth, usage_hint)) ; if ( depth > 8 ) return (PixmapPtr) NULL ; diff --git a/hw/xfree86/xf4bpp/ppcWinFS.c b/hw/xfree86/xf4bpp/ppcWinFS.c index 982bf424c..1522afd9e 100644 --- a/hw/xfree86/xf4bpp/ppcWinFS.c +++ b/hw/xfree86/xf4bpp/ppcWinFS.c @@ -100,13 +100,13 @@ xf4bppSolidWindowFS( pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted ) return ; n = nInit * miFindMaxBand( pGC->pCompositeClip ) ; - if ( !( pwidthFree = (int *) ALLOCATE_LOCAL( n * sizeof( int ) ) ) ) + if ( !( pwidthFree = (int *) xalloc( n * sizeof( int ) ) ) ) return ; pwidth = pwidthFree ; if ( !( pptFree = (DDXPointRec *) - ALLOCATE_LOCAL( n * sizeof( DDXPointRec ) ) ) ) { - DEALLOCATE_LOCAL( pwidth ) ; + xalloc( n * sizeof( DDXPointRec ) ) ) ) { + xfree( pwidth ) ; return ; } ppt = pptFree ; @@ -122,8 +122,8 @@ xf4bppSolidWindowFS( pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted ) xf4bppFillSolid( (WindowPtr)pDrawable, fg, alu, pm, ppt->x, ppt->y, *pwidth, 1 ) ; - DEALLOCATE_LOCAL( pptFree ) ; - DEALLOCATE_LOCAL( pwidthFree ) ; + xfree( pptFree ) ; + xfree( pwidthFree ) ; return ; } @@ -180,8 +180,8 @@ int fSorted ; xf4bppFillStipple( (WindowPtr)pDrawable, pTile, fg, alu, pm, ppt->x, ppt->y, *pwidth, 1, xSrc, ySrc ) ; - DEALLOCATE_LOCAL( pptFree ) ; - DEALLOCATE_LOCAL( pwidthFree ) ; + xfree( pptFree ) ; + xfree( pwidthFree ) ; return ; } @@ -232,8 +232,8 @@ int fSorted ; xf4bppOpaqueStipple( (WindowPtr)pDrawable, pGC->stipple, fg, bg, alu, pm, ppt->x, ppt->y, *pwidth, 1, xSrc, ySrc ) ; - DEALLOCATE_LOCAL( pptFree ) ; - DEALLOCATE_LOCAL( pwidthFree ) ; + xfree( pptFree ) ; + xfree( pwidthFree ) ; return ; } @@ -274,7 +274,7 @@ int fSorted ; xf4bppTileRect( (WindowPtr)pDrawable, pGC->tile.pixmap, alu, pm, ppt->x, ppt->y, *pwidth, 1, xSrc, ySrc ) ; - DEALLOCATE_LOCAL( pptFree ) ; - DEALLOCATE_LOCAL( pwidthFree ) ; + xfree( pptFree ) ; + xfree( pwidthFree ) ; return ; } diff --git a/hw/xfree86/xf4bpp/ppcWindow.c b/hw/xfree86/xf4bpp/ppcWindow.c index 8261af183..6165e04b6 100644 --- a/hw/xfree86/xf4bpp/ppcWindow.c +++ b/hw/xfree86/xf4bpp/ppcWindow.c @@ -123,7 +123,7 @@ xf4bppCopyWindow(pWin, ptOldOrg, prgnSrc) /* walk source bottom to top */ /* keep ordering in each band, reverse order of bands */ if ( !( pboxNew = - (BoxPtr) ALLOCATE_LOCAL( sizeof( BoxRec ) * nbox ) ) ) + (BoxPtr) xalloc( sizeof( BoxRec ) * nbox ) ) ) return ; pboxBase = pboxNext = pbox+nbox - 1 ; while ( pboxBase >= pbox ) { @@ -158,7 +158,7 @@ xf4bppCopyWindow(pWin, ptOldOrg, prgnSrc) else if ( dx < 0 ) { /* walk source right to left */ /* reverse order of rects in each band */ - if ( !( pboxNew = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox) ) ) + if ( !( pboxNew = (BoxPtr)xalloc(sizeof(BoxRec) * nbox) ) ) return ; pboxBase = pboxNext = pbox ; while (pboxBase < pbox+nbox) @@ -190,7 +190,7 @@ xf4bppCopyWindow(pWin, ptOldOrg, prgnSrc) /* free up stuff */ if ( pboxNew ) - DEALLOCATE_LOCAL( pboxNew ) ; + xfree( pboxNew ) ; REGION_DESTROY(pWin->drawable.pScreen, prgnDst); } diff --git a/hw/xfree86/xf4bpp/xf4bpp.h b/hw/xfree86/xf4bpp/xf4bpp.h index e7e3721f7..cf0822444 100644 --- a/hw/xfree86/xf4bpp/xf4bpp.h +++ b/hw/xfree86/xf4bpp/xf4bpp.h @@ -183,7 +183,8 @@ PixmapPtr xf4bppCreatePixmap( ScreenPtr, int, int, - int + int, + unsigned ); PixmapPtr xf4bppCopyPixmap( PixmapPtr diff --git a/hw/xfree86/xf8_32bpp/cfbcpyarea.c b/hw/xfree86/xf8_32bpp/cfbcpyarea.c index c2eb1a04e..d8f0c6d76 100644 --- a/hw/xfree86/xf8_32bpp/cfbcpyarea.c +++ b/hw/xfree86/xf8_32bpp/cfbcpyarea.c @@ -433,12 +433,12 @@ cfb8_32DoBitBlt( if (nbox > 1) { /* keep ordering in each band, reverse order of bands */ - pboxNew1 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); + pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); if(!pboxNew1) return; - pptNew1 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pptNew1) { - DEALLOCATE_LOCAL(pboxNew1); + xfree(pboxNew1); return; } pboxBase = pboxNext = pbox+nbox-1; @@ -470,14 +470,14 @@ cfb8_32DoBitBlt( if (nbox > 1) { /* reverse order of rects in each band */ - pboxNew2 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); - pptNew2 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); + pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pboxNew2 || !pptNew2) { - if (pptNew2) DEALLOCATE_LOCAL(pptNew2); - if (pboxNew2) DEALLOCATE_LOCAL(pboxNew2); + if (pptNew2) xfree(pptNew2); + if (pboxNew2) xfree(pboxNew2); if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } return; } @@ -510,12 +510,12 @@ cfb8_32DoBitBlt( (*DoBlt)(SrcPtr,SrcPitch,DstPtr,DstPitch,nbox,pptSrc,pbox,xdir,ydir); if (pboxNew2) { - DEALLOCATE_LOCAL(pptNew2); - DEALLOCATE_LOCAL(pboxNew2); + xfree(pptNew2); + xfree(pboxNew2); } if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } } diff --git a/hw/xfree86/xf8_32bpp/cfbwindow.c b/hw/xfree86/xf8_32bpp/cfbwindow.c index 787cbdec6..2e6057f12 100644 --- a/hw/xfree86/xf8_32bpp/cfbwindow.c +++ b/hw/xfree86/xf8_32bpp/cfbwindow.c @@ -77,7 +77,7 @@ cfb8_32CopyWindow(pWin, ptOldOrg, prgnSrc) pbox = REGION_RECTS(&rgnDst); nbox = REGION_NUM_RECTS(&rgnDst); if(!nbox || - !(pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))) + !(pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec)))) { REGION_UNINIT(pScreen, &rgnDst); return; @@ -97,7 +97,7 @@ cfb8_32CopyWindow(pWin, ptOldOrg, prgnSrc) cfbDoBitblt8To8GXcopy((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot, GXcopy, &rgnDst, pptSrc, ~0); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); REGION_UNINIT(pScreen, &rgnDst); if(freeReg) REGION_DESTROY(pScreen, borderClip); diff --git a/hw/xfree86/xf8_32bpp/xf86overlay.c b/hw/xfree86/xf8_32bpp/xf86overlay.c index 700c71ada..c63b3cfd1 100644 --- a/hw/xfree86/xf8_32bpp/xf86overlay.c +++ b/hw/xfree86/xf8_32bpp/xf86overlay.c @@ -32,7 +32,7 @@ static Bool OverlayCloseScreen (int, ScreenPtr); static Bool OverlayCreateGC(GCPtr pGC); static Bool OverlayDestroyPixmap(PixmapPtr); -static PixmapPtr OverlayCreatePixmap(ScreenPtr, int, int, int); +static PixmapPtr OverlayCreatePixmap(ScreenPtr, int, int, int, unsigned); static Bool OverlayChangeWindowAttributes(WindowPtr, unsigned long); /** Funcs **/ @@ -328,13 +328,14 @@ OverlayCreateGC(GCPtr pGC) } static PixmapPtr -OverlayCreatePixmap(ScreenPtr pScreen, int w, int h, int depth) +OverlayCreatePixmap(ScreenPtr pScreen, int w, int h, int depth, + unsigned usage_hint) { OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pScreen); PixmapPtr pPix; pScreen->CreatePixmap = pScreenPriv->CreatePixmap; - pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth); + pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth, usage_hint); pScreen->CreatePixmap = OverlayCreatePixmap; /* We initialize all the privates */ @@ -428,7 +429,7 @@ OverlayRefreshPixmap(PixmapPtr pix8) PixmapPtr newPix; newPix = (*pScreen->CreatePixmap)(pScreen, pix8->drawable.width, - pix8->drawable.height, 24); + pix8->drawable.height, 24, 0); newPix->drawable.depth = 8; /* Bad Mark! Bad Mark! */ pixPriv->pix32 = newPix; } diff --git a/hw/xfree86/xorgconf.cpp b/hw/xfree86/xorgconf.cpp index 1995045b8..acf90f13f 100644 --- a/hw/xfree86/xorgconf.cpp +++ b/hw/xfree86/xorgconf.cpp @@ -42,12 +42,6 @@ XCOMM ********************************************************************** Section "Files" -XCOMM The location of the RGB database. Note, this is the name of the -XCOMM file minus the extension (like ".txt" or ".db"). There is normally -XCOMM no need to change the default. - - RgbPath RGBPATH - XCOMM Multiple FontPath entries are allowed (which are concatenated together), XCOMM as well as specifying multiple comma-separated entries in one FontPath XCOMM command (or a combination of both methods) diff --git a/hw/xgl/xgl.h b/hw/xgl/xgl.h index 46747a217..03dc90c70 100644 --- a/hw/xgl/xgl.h +++ b/hw/xgl/xgl.h @@ -871,7 +871,8 @@ PixmapPtr xglCreatePixmap (ScreenPtr pScreen, int width, int height, - int depth); + int depth, + unsigned usage_hint); void xglFiniPixmap (PixmapPtr pPixmap); diff --git a/hw/xgl/xglglyph.c b/hw/xgl/xglglyph.c index 7a601889c..c1a484ac0 100644 --- a/hw/xgl/xglglyph.c +++ b/hw/xgl/xglglyph.c @@ -1075,7 +1075,8 @@ xglGlyphs (CARD8 op, pPixmap = (*pScreen->CreatePixmap) (pScreen, rect.width, rect.height, - maskFormat->depth); + maskFormat->depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) return; diff --git a/hw/xgl/xglpict.c b/hw/xgl/xglpict.c index 932d31a33..fee2431b7 100644 --- a/hw/xgl/xglpict.c +++ b/hw/xgl/xglpict.c @@ -494,7 +494,7 @@ xglSyncPicture (ScreenPtr pScreen, return FALSE; pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, - pFormat->depth); + pFormat->depth, 0); if (!pPixmap) return FALSE; diff --git a/hw/xgl/xglpixmap.c b/hw/xgl/xglpixmap.c index 59ed00a72..fefd3ef97 100644 --- a/hw/xgl/xglpixmap.c +++ b/hw/xgl/xglpixmap.c @@ -222,7 +222,8 @@ PixmapPtr xglCreatePixmap (ScreenPtr pScreen, int width, int height, - int depth) + int depth, + unsigned usage_hint) { xglPixmapPtr pPixmapPriv; PixmapPtr pPixmap; diff --git a/hw/xgl/xglscreen.c b/hw/xgl/xglscreen.c index 6bd91b72a..47ed34508 100644 --- a/hw/xgl/xglscreen.c +++ b/hw/xgl/xglscreen.c @@ -447,7 +447,7 @@ xglCreateSolidAlphaPicture (ScreenPtr pScreen) if (!pGC) return; - pPixmap = (*pScreen->CreatePixmap) (pScreen, 1, 1, pFormat->depth); + pPixmap = (*pScreen->CreatePixmap) (pScreen, 1, 1, pFormat->depth, 0); if (!pPixmap) return; diff --git a/hw/xgl/xglshm.c b/hw/xgl/xglshm.c index 52a8aabb8..567daa954 100644 --- a/hw/xgl/xglshm.c +++ b/hw/xgl/xglshm.c @@ -64,7 +64,8 @@ xglShmPutImage (DrawablePtr pDrawable, } else { - pPixmap = (*pScreen->CreatePixmap) (pScreen, sw, sh, depth); + pPixmap = (*pScreen->CreatePixmap) (pScreen, sw, sh, depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (pPixmap) { GCPtr pScratchGC; diff --git a/hw/xgl/xgltrap.c b/hw/xgl/xgltrap.c index 26e2bc451..6e7a5082c 100644 --- a/hw/xgl/xgltrap.c +++ b/hw/xgl/xgltrap.c @@ -194,7 +194,8 @@ xglTrapezoids (CARD8 op, pPixmap = (*pScreen->CreatePixmap) (pScreen, rect.width, rect.height, - maskFormat->depth); + maskFormat->depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) return; diff --git a/hw/xgl/xglxv.c b/hw/xgl/xglxv.c index bfa16e3ca..353f9b3bb 100644 --- a/hw/xgl/xglxv.c +++ b/hw/xgl/xglxv.c @@ -290,7 +290,7 @@ xglXvPutImage (ClientPtr client, if (!pPortPriv->pPixmap) { - pPortPriv->pPixmap = (*pScreen->CreatePixmap) (pScreen, 0, 0, depth); + pPortPriv->pPixmap = (*pScreen->CreatePixmap) (pScreen, 0, 0, depth, 0); if (!pPortPriv->pPixmap) return BadAlloc; } diff --git a/hw/xnest/Pixmap.c b/hw/xnest/Pixmap.c index c9c662af3..57bebc639 100644 --- a/hw/xnest/Pixmap.c +++ b/hw/xnest/Pixmap.c @@ -36,7 +36,8 @@ is" without express or implied warranty. DevPrivateKey xnestPixmapPrivateKey = &xnestPixmapPrivateKey; PixmapPtr -xnestCreatePixmap(ScreenPtr pScreen, int width, int height, int depth) +xnestCreatePixmap(ScreenPtr pScreen, int width, int height, int depth, + unsigned usage_hint) { PixmapPtr pPixmap; diff --git a/hw/xnest/XNPixmap.h b/hw/xnest/XNPixmap.h index 3b0833993..614827587 100644 --- a/hw/xnest/XNPixmap.h +++ b/hw/xnest/XNPixmap.h @@ -29,7 +29,7 @@ typedef struct { #define xnestSharePixmap(pPixmap) ((pPixmap)->refcnt++) PixmapPtr xnestCreatePixmap(ScreenPtr pScreen, int width, int height, - int depth); + int depth, unsigned usage_hint); Bool xnestDestroyPixmap(PixmapPtr pPixmap); RegionPtr xnestPixmapToRegion(PixmapPtr pPixmap); diff --git a/hw/xprint/pcl/PclArea.c b/hw/xprint/pcl/PclArea.c index 59ae5e3cc..a4e53dad6 100644 --- a/hw/xprint/pcl/PclArea.c +++ b/hw/xprint/pcl/PclArea.c @@ -415,7 +415,8 @@ PclCopyPlane(DrawablePtr pSrc, * know how to do a CopyArea. */ scratchPix = (*pDst->pScreen->CreatePixmap)( pDst->pScreen, width, - height, pDst->depth ); + height, pDst->depth, + CREATE_PIXMAP_USAGE_SCRATCH ); scratchGC = GetScratchGC( pDst->depth, pDst->pScreen ); CopyGC( pGC, scratchGC, ~0L ); diff --git a/hw/xprint/pcl/PclGC.c b/hw/xprint/pcl/PclGC.c index e64e779db..fbadf5d5d 100644 --- a/hw/xprint/pcl/PclGC.c +++ b/hw/xprint/pcl/PclGC.c @@ -712,7 +712,8 @@ PclUpdateDrawableGC( scratchPix = (*pGC->pScreen->CreatePixmap)( pGC->pScreen, - w, h, pGC->depth ); + w, h, pGC->depth, + CREATE_PIXMAP_USAGE_SCRATCH ); scratchGC = GetScratchGC( pGC->depth, pGC->pScreen ); CopyGC( pGC, scratchGC, ~0L ); diff --git a/hw/xprint/ps/Ps.h b/hw/xprint/ps/Ps.h index 415c9296a..a25e9891a 100644 --- a/hw/xprint/ps/Ps.h +++ b/hw/xprint/ps/Ps.h @@ -574,7 +574,7 @@ extern void PsSetFillColor(DrawablePtr pDrawable, GCPtr pGC, PsOutPtr psOut, */ extern PixmapPtr PsCreatePixmap(ScreenPtr pScreen, int width, int height, - int depth); + int depth, unsigned usage_hint); extern void PsScrubPixmap(PixmapPtr pPixmap); extern Bool PsDestroyPixmap(PixmapPtr pPixmap); extern DisplayListPtr PsGetFreeDisplayBlock(PsPixmapPrivPtr priv); diff --git a/hw/xprint/ps/PsPixmap.c b/hw/xprint/ps/PsPixmap.c index 1fa4e4056..a588f4276 100644 --- a/hw/xprint/ps/PsPixmap.c +++ b/hw/xprint/ps/PsPixmap.c @@ -92,7 +92,8 @@ PsCreatePixmap( ScreenPtr pScreen, int width, int height, - int depth) + int depth, + unsigned usage_hint) { PixmapPtr pPixmap; diff --git a/hw/xprint/ps/PsText.c b/hw/xprint/ps/PsText.c index 98cf15345..872c0f427 100644 --- a/hw/xprint/ps/PsText.c +++ b/hw/xprint/ps/PsText.c @@ -535,7 +535,7 @@ PsPolyGlyphBlt( nbyLine = BitmapBytePad(width); - pbits = (unsigned char *)ALLOCATE_LOCAL(height*nbyLine); + pbits = (unsigned char *)xalloc(height*nbyLine); if (!pbits){ PsDestroyPixmap(pPixmap); return; @@ -576,6 +576,6 @@ PsPolyGlyphBlt( x += pci->metrics.characterWidth; } - DEALLOCATE_LOCAL(pbits); + xfree(pbits); FreeScratchGC(pGCtmp); } diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c index f966d4026..d2159813c 100644 --- a/hw/xwin/InitOutput.c +++ b/hw/xwin/InitOutput.c @@ -600,24 +600,6 @@ winFixupPaths (void) winMsg (font_from, "FontPath set to \"%s\"\n", defaultFontPath); #ifdef RELOCATE_PROJECTROOT - if (1) { - const char *libx11dir = "/usr/X11R6/lib/X11"; - size_t libx11dir_len = strlen(libx11dir); - - if (strncmp(libx11dir, rgbPath, libx11dir_len) == 0) - { - size_t newsize = strlen(rgbPath) - libx11dir_len + basedirlen; - char *compose = malloc(newsize + 1); - strcpy(compose, basedir); - strcat(compose, rgbPath + libx11dir_len); - compose[newsize] = 0; - rgbPath = xstrdup (compose); - free (compose); - - winMsg (X_DEFAULT, "RgbPath set to \"%s\"\n", rgbPath); - } - } - if (getenv("XKEYSYMDB") == NULL) { char buffer[MAX_PATH]; diff --git a/hw/xwin/win.h b/hw/xwin/win.h index 45a6ca3c2..3ab324931 100644 --- a/hw/xwin/win.h +++ b/hw/xwin/win.h @@ -1036,7 +1036,8 @@ winSetEngineFunctionsPrimaryDD (ScreenPtr pScreen); */ PixmapPtr -winCreatePixmapNativeGDI (ScreenPtr pScreen, int width, int height, int depth); +winCreatePixmapNativeGDI (ScreenPtr pScreen, int width, int height, int depth, + unsigned usage_hint); Bool winDestroyPixmapNativeGDI (PixmapPtr pPixmap); diff --git a/hw/xwin/winconfig.c b/hw/xwin/winconfig.c index 2c1877172..a68ead266 100644 --- a/hw/xwin/winconfig.c +++ b/hw/xwin/winconfig.c @@ -65,7 +65,6 @@ WinCmdlineRec g_cmdline = { NULL, /* configFile */ #endif NULL, /* fontPath */ - NULL, /* rgbPath */ #ifdef XWIN_XF86CONFIG NULL, /* keyboard */ #endif @@ -673,20 +672,6 @@ winConfigFiles () } winMsg (from, "FontPath set to \"%s\"\n", defaultFontPath); - /* RGBPath */ - from = X_DEFAULT; - if (g_cmdline.rgbPath) - { - from = X_CMDLINE; - rgbPath = g_cmdline.rgbPath; - } - else if (filesptr != NULL && filesptr->file_rgbpath) - { - from = X_CONFIG; - rgbPath = xstrdup (filesptr->file_rgbpath); - } - winMsg (from, "RgbPath set to \"%s\"\n", rgbPath); - return TRUE; } #else @@ -702,14 +687,6 @@ winConfigFiles () winMsg (X_CMDLINE, "FontPath set to \"%s\"\n", defaultFontPath); } - /* RGBPath */ - if (g_cmdline.rgbPath) - { - from = X_CMDLINE; - rgbPath = g_cmdline.rgbPath; - winMsg (X_CMDLINE, "RgbPath set to \"%s\"\n", rgbPath); - } - return TRUE; } #endif diff --git a/hw/xwin/winconfig.h b/hw/xwin/winconfig.h index 8fd9841d7..4b56d639c 100644 --- a/hw/xwin/winconfig.h +++ b/hw/xwin/winconfig.h @@ -190,7 +190,6 @@ typedef struct char *configFile; #endif char *fontPath; - char *rgbPath; /* input devices - keyboard */ #ifdef XWIN_XF86CONFIG char *keyboard; diff --git a/hw/xwin/winpixmap.c b/hw/xwin/winpixmap.c index ffe72079a..6687ebf00 100644 --- a/hw/xwin/winpixmap.c +++ b/hw/xwin/winpixmap.c @@ -57,7 +57,7 @@ winCopyRotatePixmapNativeGDI (PixmapPtr psrcPix, PixmapPtr *ppdstPix, PixmapPtr winCreatePixmapNativeGDI (ScreenPtr pScreen, int iWidth, int iHeight, - int iDepth) + int iDepth, unsigned usage_hint) { winPrivPixmapPtr pPixmapPriv = NULL; PixmapPtr pPixmap = NULL; @@ -71,8 +71,8 @@ winCreatePixmapNativeGDI (ScreenPtr pScreen, } #if CYGDEBUG - winDebug ("winCreatePixmap () - w %d h %d d %d bw %d\n", - iWidth, iHeight, iDepth, + winDebug ("winCreatePixmap () - w %d h %d d %d uh %d bw %d\n", + iWidth, iHeight, iDepth, usage_hint, PixmapBytePad (iWidth, iDepth)); #endif diff --git a/hw/xwin/winprocarg.c b/hw/xwin/winprocarg.c index bd0b99977..7139cbaab 100755 --- a/hw/xwin/winprocarg.c +++ b/hw/xwin/winprocarg.c @@ -1278,16 +1278,6 @@ ddxProcessArgument (int argc, char *argv[], int i) } /* - * Look for the '-co' argument - */ - if (IS_OPTION ("-co")) - { - CHECK_ARGS (1); - g_cmdline.rgbPath = argv[++i]; - return 0; /* Let DIX parse this again */ - } - - /* * Look for the '-query' argument */ if (IS_OPTION ("-query")) diff --git a/hw/xwin/winwindow.c b/hw/xwin/winwindow.c index e844dbfb3..1600996df 100644 --- a/hw/xwin/winwindow.c +++ b/hw/xwin/winwindow.c @@ -167,7 +167,7 @@ winCopyWindowNativeGDI (WindowPtr pWin, nbox = REGION_NUM_RECTS(prgnDst); /* Allocate source points for each box */ - if(!(pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))) + if(!(pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec)))) return; /* Set an iterator pointer */ @@ -206,7 +206,7 @@ winCopyWindowNativeGDI (WindowPtr pWin, } /* Cleanup the regions, etc. */ - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); REGION_DESTROY(pWin->drawable.pScreen, prgnDst); } diff --git a/include/dix-config.h.in b/include/dix-config.h.in index 342d7417e..5d1266609 100644 --- a/include/dix-config.h.in +++ b/include/dix-config.h.in @@ -323,12 +323,6 @@ /* Support UNIX socket connections */ #undef UNIXCONN -/* Use builtin rgb color database */ -#undef USE_RGB_BUILTIN - -/* Use rgb.txt directly */ -#undef USE_RGB_TXT - /* Define to use byteswap macros from <sys/endian.h> */ #undef USE_SYS_ENDIAN_H @@ -467,9 +461,6 @@ /* Define to 1 if unsigned long is 64 bits. */ #undef _XSERVER64 -/* Define to location of RGB database */ -#undef RGB_DB - /* System is BSD-like */ #undef CSRG_BASED diff --git a/include/dixstruct.h b/include/dixstruct.h index 7f14abab4..cbeac48cb 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -147,11 +147,9 @@ extern long SmartScheduleTime; extern long SmartScheduleInterval; extern long SmartScheduleSlice; extern long SmartScheduleMaxSlice; -extern unsigned long SmartScheduleIdleCount; extern Bool SmartScheduleDisable; -extern Bool SmartScheduleIdle; -extern Bool SmartScheduleTimerStopped; -extern Bool SmartScheduleStartTimer(void); +extern void SmartScheduleStartTimer(void); +extern void SmartScheduleStopTimer(void); #define SMART_MAX_PRIORITY (20) #define SMART_MIN_PRIORITY (-20) diff --git a/include/exevents.h b/include/exevents.h index cf7d71aca..0892f4d0a 100644 --- a/include/exevents.h +++ b/include/exevents.h @@ -30,6 +30,8 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef EXEVENTS_H #define EXEVENTS_H +#include <X11/extensions/XIproto.h> + extern void RegisterOtherDevice ( DeviceIntPtr /* device */); diff --git a/include/globals.h b/include/globals.h index e23ce7798..b230dfc37 100644 --- a/include/globals.h +++ b/include/globals.h @@ -16,7 +16,6 @@ extern Bool screenSaverSuspended; #endif extern char *defaultFontPath; -extern char *rgbPath; extern int monitorResolution; extern Bool loadableFonts; extern int defaultColorVisualClass; diff --git a/include/os.h b/include/os.h index 40e89da24..4be6b8010 100644 --- a/include/os.h +++ b/include/os.h @@ -50,9 +50,6 @@ SOFTWARE. #define OS_H #include "misc.h" -#define ALLOCATE_LOCAL_FALLBACK(_size) Xalloc((unsigned long)(_size)) -#define DEALLOCATE_LOCAL_FALLBACK(_ptr) Xfree((pointer)(_ptr)) -#include <X11/Xalloca.h> #include <stdarg.h> #define NullFID ((FID) 0) @@ -124,6 +121,8 @@ extern void ResetOsBuffers(void); extern void InitConnectionLimits(void); +extern void NotifyParentProcess(void); + extern void CreateWellKnownSockets(void); extern void ResetWellKnownSockets(void); diff --git a/include/scrnintstr.h b/include/scrnintstr.h index 6b329d6e3..0ca13526b 100644 --- a/include/scrnintstr.h +++ b/include/scrnintstr.h @@ -198,11 +198,19 @@ typedef void (* ClipNotifyProcPtr)( int /*dx*/, int /*dy*/); +/* pixmap will exist only for the duration of the current rendering operation */ +#define CREATE_PIXMAP_USAGE_SCRATCH 1 +/* pixmap will be the backing pixmap for a redirected window */ +#define CREATE_PIXMAP_USAGE_BACKING_PIXMAP 2 +/* pixmap will contain a glyph */ +#define CREATE_PIMXAP_USAGE_GLYPH_PICTURE 3 + typedef PixmapPtr (* CreatePixmapProcPtr)( ScreenPtr /*pScreen*/, int /*width*/, int /*height*/, - int /*depth*/); + int /*depth*/, + unsigned /*usage_hint*/); typedef Bool (* DestroyPixmapProcPtr)( PixmapPtr /*pPixmap*/); diff --git a/include/site.h b/include/site.h index 5b9f25815..279cf2d70 100644 --- a/include/site.h +++ b/include/site.h @@ -75,9 +75,6 @@ SOFTWARE. #ifndef COMPILEDDEFAULTFONTPATH #define COMPILEDDEFAULTFONTPATH "/usr/lib/X11/fonts/misc/" #endif -#ifndef RGB_DB -#define RGB_DB "/usr/lib/X11/rgb" -#endif /* * The following constants contain default values for all of the variables diff --git a/include/xkbsrv.h b/include/xkbsrv.h index e4a1db3c5..6425e37ae 100644 --- a/include/xkbsrv.h +++ b/include/xkbsrv.h @@ -126,6 +126,24 @@ typedef struct _XkbEventCause { #define _BEEP_LED_CHANGE 14 #define _BEEP_BOUNCE_REJECT 15 +struct _XkbSrvInfo; /* definition see below */ + +typedef struct _XkbFilter { + CARD16 keycode; + CARD8 what; + CARD8 active; + CARD8 filterOthers; + CARD32 priv; + XkbAction upAction; + int (*filter)( + struct _XkbSrvInfo* /* xkbi */, + struct _XkbFilter * /* filter */, + unsigned /* keycode */, + XkbAction * /* action */ + ); + struct _XkbFilter *next; +} XkbFilterRec,*XkbFilterPtr; + typedef struct _XkbSrvInfo { XkbStateRec prev_state; XkbStateRec state; @@ -169,6 +187,9 @@ typedef struct _XkbSrvInfo { OsTimerPtr bounceKeysTimer; OsTimerPtr repeatKeyTimer; OsTimerPtr krgTimer; + + int szFilters; + XkbFilterPtr filters; } XkbSrvInfoRec, *XkbSrvInfoPtr; #define XkbSLI_IsDefault (1L<<0) @@ -241,13 +262,17 @@ typedef struct oldprocs->unwrapProc = device->unwrapProc; \ device->unwrapProc = unwrapproc; -#define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs) \ +#define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs, backupproc) \ + backupproc = device->public.processInputProc; \ device->public.processInputProc = oldprocs->processInputProc; \ device->public.realInputProc = oldprocs->realInputProc; \ device->unwrapProc = oldprocs->unwrapProc; +extern DevPrivateKey xkbDevicePrivateKey; #define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr)dixLookupPrivate(&(dev)->devPrivates, xkbDevicePrivateKey)) +extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer); + /***====================================================================***/ @@ -290,8 +315,9 @@ extern CARD32 xkbDebugFlags; #define _XkbErrCode3(a,b,c) _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c)) #define _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d))) -extern int DeviceKeyPress,DeviceKeyRelease; +extern int DeviceKeyPress,DeviceKeyRelease,DeviceMotionNotify; extern int DeviceButtonPress,DeviceButtonRelease; +extern int DeviceEnterNotify,DeviceLeaveNotify; #ifdef XINPUT #define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress)) diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in index 4b9104d9f..00fd1cffa 100644 --- a/include/xorg-server.h.in +++ b/include/xorg-server.h.in @@ -106,12 +106,6 @@ /* Support UNIX socket connections */ #undef UNIXCONN -/* Use builtin rgb color database */ -#undef USE_RGB_BUILTIN - -/* Use rgb.txt directly */ -#undef USE_RGB_TXT - /* unaligned word accesses behave as expected */ #undef WORKING_UNALIGNED_INT @@ -588,7 +588,8 @@ extern PixmapPtr mfbCreatePixmap( ScreenPtr /*pScreen*/, int /*width*/, int /*height*/, - int /*depth*/ + int /*depth*/, + unsigned /*usage_hint*/ ); extern Bool mfbDestroyPixmap( diff --git a/mfb/mfbbitblt.c b/mfb/mfbbitblt.c index 3efee45b1..0c23ba750 100644 --- a/mfb/mfbbitblt.c +++ b/mfb/mfbbitblt.c @@ -351,7 +351,7 @@ int dstx, dsty; numRects = REGION_NUM_RECTS(&rgnDst); if (numRects && width && height) { - if(!(pptSrc = (DDXPointPtr)ALLOCATE_LOCAL(numRects * + if(!(pptSrc = (DDXPointPtr)xalloc(numRects * sizeof(DDXPointRec)))) { REGION_UNINIT(pGC->pScreen, &rgnDst); @@ -370,7 +370,7 @@ int dstx, dsty; if (pGC->planemask & 1) (*localDoBitBlt) (pSrcDrawable, pDstDrawable, pGC->alu, &rgnDst, pptSrc); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); } prgnExposed = NULL; diff --git a/mfb/mfbblt.c b/mfb/mfbblt.c index 4c3028126..b87a69797 100644 --- a/mfb/mfbblt.c +++ b/mfb/mfbblt.c @@ -119,13 +119,13 @@ MROP_NAME(mfbDoBitblt)(pSrc, pDst, alu, prgnDst, pptSrc) if (nbox > 1) { /* keep ordering in each band, reverse order of bands */ - pboxNew1 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); + pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); if(!pboxNew1) return; - pptNew1 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pptNew1) { - DEALLOCATE_LOCAL(pboxNew1); + xfree(pboxNew1); return; } pboxBase = pboxNext = pbox+nbox-1; @@ -163,16 +163,16 @@ MROP_NAME(mfbDoBitblt)(pSrc, pDst, alu, prgnDst, pptSrc) if (nbox > 1) { /* reverse order of rects in each band */ - pboxNew2 = (BoxPtr)ALLOCATE_LOCAL(sizeof(BoxRec) * nbox); - pptNew2 = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * nbox); + pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox); + pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox); if(!pboxNew2 || !pptNew2) { - if (pptNew2) DEALLOCATE_LOCAL(pptNew2); - if (pboxNew2) DEALLOCATE_LOCAL(pboxNew2); + if (pptNew2) xfree(pptNew2); + if (pboxNew2) xfree(pboxNew2); if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } return; } @@ -578,12 +578,12 @@ bits1 = *--psrc; --pdst; \ } if (pboxNew2) { - DEALLOCATE_LOCAL(pptNew2); - DEALLOCATE_LOCAL(pboxNew2); + xfree(pptNew2); + xfree(pboxNew2); } if (pboxNew1) { - DEALLOCATE_LOCAL(pptNew1); - DEALLOCATE_LOCAL(pboxNew1); + xfree(pptNew1); + xfree(pboxNew1); } } diff --git a/mfb/mfbfillrct.c b/mfb/mfbfillrct.c index 506776b3f..a0b3d6716 100644 --- a/mfb/mfbfillrct.c +++ b/mfb/mfbfillrct.c @@ -119,7 +119,7 @@ mfbPolyFillRect(pDrawable, pGC, nrectFill, prectInit) numRects = REGION_NUM_RECTS(prgnClip) * nrectFill; if (numRects > NUM_STACK_RECTS) { - pboxClippedBase = (BoxPtr)ALLOCATE_LOCAL(numRects * sizeof(BoxRec)); + pboxClippedBase = (BoxPtr)xalloc(numRects * sizeof(BoxRec)); if (!pboxClippedBase) return; } @@ -223,5 +223,5 @@ mfbPolyFillRect(pDrawable, pGC, nrectFill, prectInit) if (pboxClipped != pboxClippedBase) (*pfn) (pDrawable,pboxClipped-pboxClippedBase, pboxClippedBase, alu, ppix); if (pboxClippedBase != stackRects) - DEALLOCATE_LOCAL(pboxClippedBase); + xfree(pboxClippedBase); } diff --git a/mfb/mfbfillsp.c b/mfb/mfbfillsp.c index e9be737da..c073535df 100644 --- a/mfb/mfbfillsp.c +++ b/mfb/mfbfillsp.c @@ -111,12 +111,12 @@ mfbBlackSolidFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) return; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -151,8 +151,8 @@ mfbBlackSolidFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) pwidth++; ppt++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } @@ -183,12 +183,12 @@ mfbWhiteSolidFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) return; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -223,8 +223,8 @@ mfbWhiteSolidFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) pwidth++; ppt++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } @@ -255,12 +255,12 @@ mfbInvertSolidFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) return; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -295,8 +295,8 @@ mfbInvertSolidFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) pwidth++; ppt++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } @@ -330,12 +330,12 @@ mfbWhiteStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) return; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -372,8 +372,8 @@ mfbWhiteStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) pwidth++; ppt++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } @@ -407,12 +407,12 @@ mfbBlackStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) return; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -449,8 +449,8 @@ mfbBlackStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) pwidth++; ppt++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } @@ -484,12 +484,12 @@ mfbInvertStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) return; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -526,8 +526,8 @@ mfbInvertStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) pwidth++; ppt++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } @@ -603,12 +603,12 @@ mfbTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) return; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -709,8 +709,8 @@ mfbTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) } break; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } @@ -747,12 +747,12 @@ mfbUnnaturalTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) return; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -875,8 +875,8 @@ mfbUnnaturalTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) ppt++; pwidth++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } @@ -914,12 +914,12 @@ mfbUnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) return; n = nInit * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(n * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(n * sizeof(DDXPointRec)); + pwidthFree = (int *)xalloc(n * sizeof(int)); + pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec)); if(!pptFree || !pwidthFree) { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); + if (pptFree) xfree(pptFree); + if (pwidthFree) xfree(pwidthFree); return; } pwidth = pwidthFree; @@ -1024,6 +1024,6 @@ mfbUnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted) ppt++; pwidth++; } - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); + xfree(pptFree); + xfree(pwidthFree); } diff --git a/mfb/mfbimggblt.c b/mfb/mfbimggblt.c index 2778b625c..cb532cf3b 100644 --- a/mfb/mfbimggblt.c +++ b/mfb/mfbimggblt.c @@ -294,7 +294,7 @@ MFBIMAGEGLYPHBLT(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) int getWidth; /* bits to get from glyph */ #endif - if(!(ppos = (TEXTPOS *)ALLOCATE_LOCAL(nglyph * sizeof(TEXTPOS)))) + if(!(ppos = (TEXTPOS *)xalloc(nglyph * sizeof(TEXTPOS)))) return; pdstBase = mfbScanlineNoBankSwitch(pdstBase, x, y, widthDst); @@ -435,7 +435,7 @@ MFBIMAGEGLYPHBLT(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) } } /* for each glyph */ } /* while nbox-- */ - DEALLOCATE_LOCAL(ppos); + xfree(ppos); break; } default: diff --git a/mfb/mfbpixmap.c b/mfb/mfbpixmap.c index 1f3f011fb..5fe1544d8 100644 --- a/mfb/mfbpixmap.c +++ b/mfb/mfbpixmap.c @@ -69,11 +69,12 @@ SOFTWARE. PixmapPtr -mfbCreatePixmap (pScreen, width, height, depth) +mfbCreatePixmap (pScreen, width, height, depth, usage_hint) ScreenPtr pScreen; int width; int height; int depth; + unsigned usage_hint; { PixmapPtr pPixmap; size_t datasize; @@ -130,7 +131,7 @@ mfbCopyPixmap(pSrc) size = pSrc->drawable.height * pSrc->devKind; pScreen = pSrc->drawable.pScreen; pDst = (*pScreen->CreatePixmap) (pScreen, pSrc->drawable.width, - pSrc->drawable.height, pSrc->drawable.depth); + pSrc->drawable.height, pSrc->drawable.depth, 0); if (!pDst) return NullPixmap; memmove((char *)pDst->devPrivate.ptr, (char *)pSrc->devPrivate.ptr, size); @@ -253,13 +254,13 @@ mfbYRotatePixmap(pPix, rh) nbyDown = rh * pPix->devKind; nbyUp = (pPix->devKind * height) - nbyDown; - if(!(ptmp = (char *)ALLOCATE_LOCAL(nbyUp))) + if(!(ptmp = (char *)xalloc(nbyUp))) return; memmove(ptmp, pbase, nbyUp); /* save the low rows */ memmove(pbase, pbase+nbyUp, nbyDown); /* slide the top rows down */ memmove(pbase+nbyDown, ptmp, nbyUp); /* move lower rows up to row rh */ - DEALLOCATE_LOCAL(ptmp); + xfree(ptmp); } void diff --git a/mfb/mfbplygblt.c b/mfb/mfbplygblt.c index 997e4a388..1bd56e1ec 100644 --- a/mfb/mfbplygblt.c +++ b/mfb/mfbplygblt.c @@ -254,7 +254,7 @@ MFBPOLYGLYPHBLT(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) int getWidth; /* bits to get from glyph */ #endif - if(!(ppos = (TEXTPOS *)ALLOCATE_LOCAL(nglyph * sizeof(TEXTPOS)))) + if(!(ppos = (TEXTPOS *)xalloc(nglyph * sizeof(TEXTPOS)))) return; pdstBase = mfbScanlineNoBankSwitch(pdstBase, x, y, widthDst); @@ -388,7 +388,7 @@ MFBPOLYGLYPHBLT(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) } } /* for each glyph */ } /* while nbox-- */ - DEALLOCATE_LOCAL(ppos); + xfree(ppos); break; } default: diff --git a/mfb/mfbpushpxl.c b/mfb/mfbpushpxl.c index ddf7b3c0e..de9699252 100644 --- a/mfb/mfbpushpxl.c +++ b/mfb/mfbpushpxl.c @@ -132,7 +132,7 @@ mfbSolidPP(pGC, pBitMap, pDrawable, dx, dy, xOrg, yOrg) if (!REGION_NIL(&rgnDst)) { i = REGION_NUM_RECTS(&rgnDst); - pptSrc = (DDXPointPtr)ALLOCATE_LOCAL(i * sizeof(DDXPointRec)); + pptSrc = (DDXPointPtr)xalloc(i * sizeof(DDXPointRec)); if(pptSrc) { for (pbox = REGION_RECTS(&rgnDst), ppt = pptSrc; @@ -143,7 +143,7 @@ mfbSolidPP(pGC, pBitMap, pDrawable, dx, dy, xOrg, yOrg) ppt->y = pbox->y1 - yOrg; } mfbDoBitblt((DrawablePtr)pBitMap, pDrawable, alu, &rgnDst, pptSrc); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); } } REGION_UNINIT(pGC->pScreen, &rgnDst); diff --git a/mfb/mfbwindow.c b/mfb/mfbwindow.c index e0bff8bea..37125da45 100644 --- a/mfb/mfbwindow.c +++ b/mfb/mfbwindow.c @@ -151,7 +151,7 @@ mfbCopyWindow(pWin, ptOldOrg, prgnSrc) pbox = REGION_RECTS(prgnDst); nbox = REGION_NUM_RECTS(prgnDst); - if(!(pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))) + if(!(pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec)))) return; ppt = pptSrc; @@ -163,6 +163,6 @@ mfbCopyWindow(pWin, ptOldOrg, prgnSrc) mfbDoBitblt((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot, GXcopy, prgnDst, pptSrc); - DEALLOCATE_LOCAL(pptSrc); + xfree(pptSrc); REGION_DESTROY(pWin->drawable.pScreen, prgnDst); } diff --git a/mi/miarc.c b/mi/miarc.c index 3b77ce74a..5ccd11127 100644 --- a/mi/miarc.c +++ b/mi/miarc.c @@ -925,14 +925,14 @@ miFillWideEllipse( yorgu = parc->height + pGC->lineWidth; n = (sizeof(int) * 2) * yorgu; - widths = (int *)ALLOCATE_LOCAL(n + (sizeof(DDXPointRec) * 2) * yorgu); + widths = (int *)xalloc(n + (sizeof(DDXPointRec) * 2) * yorgu); if (!widths) return; points = (DDXPointPtr)((char *)widths + n); spdata = miComputeWideEllipse((int)pGC->lineWidth, parc, &mustFree); if (!spdata) { - DEALLOCATE_LOCAL(widths); + xfree(widths); return; } pts = points; @@ -1025,7 +1025,7 @@ miFillWideEllipse( xfree(spdata); (*pGC->ops->FillSpans)(pDraw, pGC, pts - points, points, widths, FALSE); - DEALLOCATE_LOCAL(widths); + xfree(widths); } /* @@ -1155,7 +1155,8 @@ miPolyArc(pDraw, pGC, narcs, parcs) /* allocate a 1 bit deep pixmap of the appropriate size, and * validate it */ pDrawTo = (DrawablePtr)(*pDraw->pScreen->CreatePixmap) - (pDraw->pScreen, pixmapWidth, pixmapHeight, 1); + (pDraw->pScreen, pixmapWidth, pixmapHeight, 1, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pDrawTo) { FreeScratchGC(pGCTo); @@ -1898,13 +1899,13 @@ miComputeArcs ( isDoubleDash = (pGC->lineStyle == LineDoubleDash); dashOffset = pGC->dashOffset; - data = (struct arcData *) ALLOCATE_LOCAL (narcs * sizeof (struct arcData)); + data = (struct arcData *) xalloc (narcs * sizeof (struct arcData)); if (!data) return (miPolyArcPtr)NULL; arcs = (miPolyArcPtr) xalloc (sizeof (*arcs) * (isDoubleDash ? 2 : 1)); if (!arcs) { - DEALLOCATE_LOCAL(data); + xfree(data); return (miPolyArcPtr)NULL; } for (i = 0; i < narcs; i++) { @@ -2253,11 +2254,11 @@ miComputeArcs ( arcs[iphase].arcs[arcs[iphase].narcs-1].cap = arcs[iphase].ncaps; } - DEALLOCATE_LOCAL(data); + xfree(data); return arcs; arcfail: miFreeArcs(arcs, pGC); - DEALLOCATE_LOCAL(data); + xfree(data); return (miPolyArcPtr)NULL; } @@ -3161,8 +3162,8 @@ fillSpans ( if (nspans == 0) return; - xSpan = xSpans = (DDXPointPtr) ALLOCATE_LOCAL (nspans * sizeof (DDXPointRec)); - xWidth = xWidths = (int *) ALLOCATE_LOCAL (nspans * sizeof (int)); + xSpan = xSpans = (DDXPointPtr) xalloc (nspans * sizeof (DDXPointRec)); + xWidth = xWidths = (int *) xalloc (nspans * sizeof (int)); if (xSpans && xWidths) { i = 0; @@ -3182,9 +3183,9 @@ fillSpans ( } disposeFinalSpans (); if (xSpans) - DEALLOCATE_LOCAL (xSpans); + xfree (xSpans); if (xWidths) - DEALLOCATE_LOCAL (xWidths); + xfree (xWidths); finalMiny = 0; finalMaxy = -1; finalSize = 0; diff --git a/mi/mibank.c b/mi/mibank.c index 05813e561..ea79e9d36 100644 --- a/mi/mibank.c +++ b/mi/mibank.c @@ -172,8 +172,8 @@ typedef struct _miBankQueue (*pScreenPriv->BankInfo.SetDestinationBank)(pScreen, (_no)) - \ (pScreenPriv->BankInfo.BankSize * (_no))) -#define ALLOCATE_LOCAL_ARRAY(atype, ntype) \ - (atype *)ALLOCATE_LOCAL((ntype) * sizeof(atype)) +#define xalloc_ARRAY(atype, ntype) \ + (atype *)xalloc((ntype) * sizeof(atype)) static DevPrivateKey miBankScreenKey = &miBankScreenKey; static DevPrivateKey miBankGCKey = &miBankGCKey; @@ -318,14 +318,14 @@ static unsigned long miBankGeneration = 0; atype *aarg = pArray, *acopy; \ int i; \ CLIP_SAVE; \ - if ((acopy = ALLOCATE_LOCAL_ARRAY(atype, nArray))) \ + if ((acopy = xalloc_ARRAY(atype, nArray))) \ aarg = acopy; \ GCOP_TOP_PART; \ if (acopy) \ memcpy(acopy, pArray, nArray * sizeof(atype)); \ (*pGC->ops->aop)(pDrawable, pGC, GCOP_ARGS nArray, aarg); \ GCOP_BOTTOM_PART; \ - DEALLOCATE_LOCAL(acopy); \ + xfree(acopy); \ CLIP_RESTORE; \ } \ SCREEN_RESTORE; \ @@ -787,7 +787,7 @@ miBankCopy( fastBlit = pGCPriv->fastCopy; nQueue = nBox * pScreenPriv->maxRects * 2; - pQueue = Queue = ALLOCATE_LOCAL_ARRAY(miBankQueue, nQueue); + pQueue = Queue = xalloc_ARRAY(miBankQueue, nQueue); if (Queue) { @@ -953,7 +953,7 @@ miBankCopy( paddedWidth = PixmapBytePad(maxWidth, pScreenPriv->pScreenPixmap->drawable.depth); - pImage = (char *)ALLOCATE_LOCAL(paddedWidth * maxHeight); + pImage = (char *)xalloc(paddedWidth * maxHeight); pGC->fExpose = FALSE; @@ -1031,7 +1031,7 @@ miBankCopy( pQueue++; } - DEALLOCATE_LOCAL(pImage); + xfree(pImage); BANK_RESTORE; } @@ -1040,7 +1040,7 @@ miBankCopy( pGC->fExpose = fExpose; - DEALLOCATE_LOCAL(Queue); + xfree(Queue); } SCREEN_RESTORE; @@ -1605,7 +1605,7 @@ miBankCreateScreenResources( /* Get shadow pixmap; width & height of 0 means no pixmap data */ pScreenPriv->pBankPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, - pScreenPriv->pScreenPixmap->drawable.depth); + pScreenPriv->pScreenPixmap->drawable.depth, 0); if (!pScreenPriv->pBankPixmap) retval = FALSE; } @@ -1748,7 +1748,7 @@ miBankGetImage( paddedWidth = PixmapBytePad(w, pScreenPriv->pScreenPixmap->drawable.depth); - pBankImage = (char *)ALLOCATE_LOCAL(paddedWidth * h); + pBankImage = (char *)xalloc(paddedWidth * h); if (pBankImage) { @@ -1768,7 +1768,7 @@ miBankGetImage( BANK_RESTORE; - DEALLOCATE_LOCAL(pBankImage); + xfree(pBankImage); } } @@ -1809,7 +1809,7 @@ miBankGetSpans( paddedWidth = PixmapBytePad(pScreenPriv->pScreenPixmap->drawable.width, pScreenPriv->pScreenPixmap->drawable.depth); - pBankImage = (char *)ALLOCATE_LOCAL(paddedWidth); + pBankImage = (char *)xalloc(paddedWidth); if (pBankImage) { @@ -1838,7 +1838,7 @@ miBankGetSpans( BANK_RESTORE; - DEALLOCATE_LOCAL(pBankImage); + xfree(pBankImage); } } @@ -1911,7 +1911,7 @@ miBankCopyWindow( if (dy < 0) { /* Sort boxes from bottom to top */ - pBoxNew1 = ALLOCATE_LOCAL_ARRAY(BoxRec, nBox); + pBoxNew1 = xalloc_ARRAY(BoxRec, nBox); if (pBoxNew1) { @@ -1939,7 +1939,7 @@ miBankCopyWindow( if (dx < 0) { /* Sort boxes from right to left */ - pBoxNew2 = ALLOCATE_LOCAL_ARRAY(BoxRec, nBox); + pBoxNew2 = xalloc_ARRAY(BoxRec, nBox); if (pBoxNew2) { @@ -1979,8 +1979,8 @@ miBankCopyWindow( REGION_DESTROY(pScreen, pRgnDst); - DEALLOCATE_LOCAL(pBoxNew2); - DEALLOCATE_LOCAL(pBoxNew1); + xfree(pBoxNew2); + xfree(pBoxNew1); } _X_EXPORT Bool diff --git a/mi/mibitblt.c b/mi/mibitblt.c index e61855a93..14d68e2e1 100644 --- a/mi/mibitblt.c +++ b/mi/mibitblt.c @@ -143,21 +143,21 @@ miCopyArea(pSrcDrawable, pDstDrawable, } pptFirst = ppt = (DDXPointPtr) - ALLOCATE_LOCAL(heightSrc * sizeof(DDXPointRec)); + xalloc(heightSrc * sizeof(DDXPointRec)); pwidthFirst = pwidth = (unsigned int *) - ALLOCATE_LOCAL(heightSrc * sizeof(unsigned int)); + xalloc(heightSrc * sizeof(unsigned int)); numRects = REGION_NUM_RECTS(prgnSrcClip); boxes = REGION_RECTS(prgnSrcClip); ordering = (unsigned int *) - ALLOCATE_LOCAL(numRects * sizeof(unsigned int)); + xalloc(numRects * sizeof(unsigned int)); if(!pptFirst || !pwidthFirst || !ordering) { if (ordering) - DEALLOCATE_LOCAL(ordering); + xfree(ordering); if (pwidthFirst) - DEALLOCATE_LOCAL(pwidthFirst); + xfree(pwidthFirst); if (pptFirst) - DEALLOCATE_LOCAL(pptFirst); + xfree(pptFirst); return (RegionPtr)NULL; } @@ -264,9 +264,9 @@ miCopyArea(pSrcDrawable, pDstDrawable, if(realSrcClip) REGION_DESTROY(pGC->pScreen, prgnSrcClip); - DEALLOCATE_LOCAL(ordering); - DEALLOCATE_LOCAL(pwidthFirst); - DEALLOCATE_LOCAL(pptFirst); + xfree(ordering); + xfree(pwidthFirst); + xfree(pptFirst); return prgnExposed; } @@ -416,7 +416,8 @@ miOpqStipDrawable(DrawablePtr pDraw, GCPtr pGC, RegionPtr prgnSrc, RegionPtr prgnSrcClip; pPixmap = (*pDraw->pScreen->CreatePixmap) - (pDraw->pScreen, w + srcx, h, 1); + (pDraw->pScreen, w + srcx, h, 1, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) return; @@ -432,12 +433,12 @@ miOpqStipDrawable(DrawablePtr pDraw, GCPtr pGC, RegionPtr prgnSrc, dixChangeGC(NullClient, pGCT, GCBackground, NULL, gcv); ValidateGC((DrawablePtr)pPixmap, pGCT); miClearDrawable((DrawablePtr)pPixmap, pGCT); - ppt = pptFirst = (DDXPointPtr)ALLOCATE_LOCAL(h * sizeof(DDXPointRec)); - pwidth = pwidthFirst = (int *)ALLOCATE_LOCAL(h * sizeof(int)); + ppt = pptFirst = (DDXPointPtr)xalloc(h * sizeof(DDXPointRec)); + pwidth = pwidthFirst = (int *)xalloc(h * sizeof(int)); if(!pptFirst || !pwidthFirst) { - if (pwidthFirst) DEALLOCATE_LOCAL(pwidthFirst); - if (pptFirst) DEALLOCATE_LOCAL(pptFirst); + if (pwidthFirst) xfree(pwidthFirst); + if (pptFirst) xfree(pptFirst); FreeScratchGC(pGCT); return; } @@ -463,8 +464,8 @@ miOpqStipDrawable(DrawablePtr pDraw, GCPtr pGC, RegionPtr prgnSrc, (*pGCT->ops->SetSpans)((DrawablePtr)pPixmap, pGCT, (char *)pbits, pptFirst, pwidthFirst, h, TRUE); - DEALLOCATE_LOCAL(pwidthFirst); - DEALLOCATE_LOCAL(pptFirst); + xfree(pwidthFirst); + xfree(pptFirst); /* Save current values from the client GC */ @@ -667,7 +668,8 @@ miGetImage(pDraw, sx, sy, w, h, format, planeMask, pDst) if (!pGC) return; pPixmap = (*pDraw->pScreen->CreatePixmap) - (pDraw->pScreen, w, 1, depth); + (pDraw->pScreen, w, 1, depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) { FreeScratchGC(pGC); @@ -806,14 +808,14 @@ miPutImage(pDraw, pGC, depth, x, y, w, h, leftPad, format, pImage) break; case ZPixmap: - ppt = pptFirst = (DDXPointPtr)ALLOCATE_LOCAL(h * sizeof(DDXPointRec)); - pwidth = pwidthFirst = (int *)ALLOCATE_LOCAL(h * sizeof(int)); + ppt = pptFirst = (DDXPointPtr)xalloc(h * sizeof(DDXPointRec)); + pwidth = pwidthFirst = (int *)xalloc(h * sizeof(int)); if(!pptFirst || !pwidthFirst) { if (pwidthFirst) - DEALLOCATE_LOCAL(pwidthFirst); + xfree(pwidthFirst); if (pptFirst) - DEALLOCATE_LOCAL(pptFirst); + xfree(pptFirst); return; } if (pGC->miTranslate) @@ -832,8 +834,8 @@ miPutImage(pDraw, pGC, depth, x, y, w, h, leftPad, format, pImage) (*pGC->ops->SetSpans)(pDraw, pGC, (char *)pImage, pptFirst, pwidthFirst, h, TRUE); - DEALLOCATE_LOCAL(pwidthFirst); - DEALLOCATE_LOCAL(pptFirst); + xfree(pwidthFirst); + xfree(pptFirst); break; } } diff --git a/mi/midispcur.c b/mi/midispcur.c index f974c0845..1731251fb 100644 --- a/mi/midispcur.c +++ b/mi/midispcur.c @@ -263,7 +263,8 @@ miDCRealize ( pPriv->sourceBits = 0; pPriv->maskBits = 0; pPixmap = (*pScreen->CreatePixmap) (pScreen, pCursor->bits->width, - pCursor->bits->height, 32); + pCursor->bits->height, 32, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) { xfree ((pointer) pPriv); @@ -295,13 +296,13 @@ miDCRealize ( } pPriv->pPicture = 0; #endif - pPriv->sourceBits = (*pScreen->CreatePixmap) (pScreen, pCursor->bits->width, pCursor->bits->height, 1); + pPriv->sourceBits = (*pScreen->CreatePixmap) (pScreen, pCursor->bits->width, pCursor->bits->height, 1, 0); if (!pPriv->sourceBits) { xfree ((pointer) pPriv); return (miDCCursorPtr)NULL; } - pPriv->maskBits = (*pScreen->CreatePixmap) (pScreen, pCursor->bits->width, pCursor->bits->height, 1); + pPriv->maskBits = (*pScreen->CreatePixmap) (pScreen, pCursor->bits->width, pCursor->bits->height, 1, 0); if (!pPriv->maskBits) { (*pScreen->DestroyPixmap) (pPriv->sourceBits); @@ -525,7 +526,7 @@ miDCSaveUnderCursor (pScreen, x, y, w, h) if (pSave) (*pScreen->DestroyPixmap) (pSave); pScreenPriv->pSave = pSave = - (*pScreen->CreatePixmap) (pScreen, w, h, pScreen->rootDepth); + (*pScreen->CreatePixmap) (pScreen, w, h, pScreen->rootDepth, 0); if (!pSave) return FALSE; } @@ -739,7 +740,7 @@ miDCMoveCursor (pScreen, pCursor, x, y, w, h, dx, dy, source, mask) } #endif pScreenPriv->pTemp = pTemp = (*pScreen->CreatePixmap) - (pScreen, w, h, pScreenPriv->pSave->drawable.depth); + (pScreen, w, h, pScreenPriv->pSave->drawable.depth, 0); if (!pTemp) return FALSE; } diff --git a/mi/miexpose.c b/mi/miexpose.c index 6ace9f589..2d3b0d510 100644 --- a/mi/miexpose.c +++ b/mi/miexpose.c @@ -369,7 +369,7 @@ miSendGraphicsExpose (client, pRgn, drawable, major, minor) numRects = REGION_NUM_RECTS(pRgn); pBox = REGION_RECTS(pRgn); - if(!(pEvent = (xEvent *)ALLOCATE_LOCAL(numRects * sizeof(xEvent)))) + if(!(pEvent = (xEvent *)xalloc(numRects * sizeof(xEvent)))) return; pe = pEvent; @@ -387,7 +387,7 @@ miSendGraphicsExpose (client, pRgn, drawable, major, minor) } TryClientEvents(client, pEvent, numRects, (Mask)0, NoEventMask, NullGrab); - DEALLOCATE_LOCAL(pEvent); + xfree(pEvent); } else { @@ -415,7 +415,7 @@ miSendExposures(pWin, pRgn, dx, dy) pBox = REGION_RECTS(pRgn); numRects = REGION_NUM_RECTS(pRgn); - if(!(pEvent = (xEvent *) ALLOCATE_LOCAL(numRects * sizeof(xEvent)))) + if(!(pEvent = (xEvent *) xalloc(numRects * sizeof(xEvent)))) return; for (i=numRects, pe = pEvent; --i >= 0; pe++, pBox++) @@ -445,7 +445,7 @@ miSendExposures(pWin, pRgn, dx, dy) win = PanoramiXFindIDByScrnum(XRT_WINDOW, pWin->drawable.id, scrnum); if(!win) { - DEALLOCATE_LOCAL(pEvent); + xfree(pEvent); return; } realWin = win->info[0].id; @@ -462,7 +462,7 @@ miSendExposures(pWin, pRgn, dx, dy) DeliverEvents(pWin, pEvent, numRects, NullWindow); - DEALLOCATE_LOCAL(pEvent); + xfree(pEvent); } _X_EXPORT void @@ -620,7 +620,7 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) gcmask |= GCFillStyle | GCTile | GCTileStipXOrigin | GCTileStipYOrigin; } - prect = (xRectangle *)ALLOCATE_LOCAL(REGION_NUM_RECTS(prgn) * + prect = (xRectangle *)xalloc(REGION_NUM_RECTS(prgn) * sizeof(xRectangle)); if (!prect) return; @@ -628,7 +628,7 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) pGC = GetScratchGC(drawable->depth, drawable->pScreen); if (!pGC) { - DEALLOCATE_LOCAL(prect); + xfree(prect); return; } @@ -646,7 +646,7 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) } prect -= numRects; (*pGC->ops->PolyFillRect)(drawable, pGC, numRects, prect); - DEALLOCATE_LOCAL(prect); + xfree(prect); FreeScratchGC(pGC); } diff --git a/mi/mifillarc.c b/mi/mifillarc.c index c561b1f5b..f68ddf468 100644 --- a/mi/mifillarc.c +++ b/mi/mifillarc.c @@ -551,13 +551,13 @@ miFillEllipseI( int *widths; int *wids; - points = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * arc->height); + points = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * arc->height); if (!points) return; - widths = (int *)ALLOCATE_LOCAL(sizeof(int) * arc->height); + widths = (int *)xalloc(sizeof(int) * arc->height); if (!widths) { - DEALLOCATE_LOCAL(points); + xfree(points); return; } miFillArcSetup(arc, &info); @@ -575,8 +575,8 @@ miFillEllipseI( ADDSPANS(); } (*pGC->ops->FillSpans)(pDraw, pGC, pts - points, points, widths, FALSE); - DEALLOCATE_LOCAL(widths); - DEALLOCATE_LOCAL(points); + xfree(widths); + xfree(points); } static void @@ -594,13 +594,13 @@ miFillEllipseD( int *widths; int *wids; - points = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * arc->height); + points = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * arc->height); if (!points) return; - widths = (int *)ALLOCATE_LOCAL(sizeof(int) * arc->height); + widths = (int *)xalloc(sizeof(int) * arc->height); if (!widths) { - DEALLOCATE_LOCAL(points); + xfree(points); return; } miFillArcDSetup(arc, &info); @@ -618,8 +618,8 @@ miFillEllipseD( ADDSPANS(); } (*pGC->ops->FillSpans)(pDraw, pGC, pts - points, points, widths, FALSE); - DEALLOCATE_LOCAL(widths); - DEALLOCATE_LOCAL(points); + xfree(widths); + xfree(points); } #define ADDSPAN(l,r) \ @@ -666,13 +666,13 @@ miFillArcSliceI( slw = arc->height; if (slice.flip_top || slice.flip_bot) slw += (arc->height >> 1) + 1; - points = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * slw); + points = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * slw); if (!points) return; - widths = (int *)ALLOCATE_LOCAL(sizeof(int) * slw); + widths = (int *)xalloc(sizeof(int) * slw); if (!widths) { - DEALLOCATE_LOCAL(points); + xfree(points); return; } if (pGC->miTranslate) @@ -703,8 +703,8 @@ miFillArcSliceI( } } (*pGC->ops->FillSpans)(pDraw, pGC, pts - points, points, widths, FALSE); - DEALLOCATE_LOCAL(widths); - DEALLOCATE_LOCAL(points); + xfree(widths); + xfree(points); } static void @@ -730,13 +730,13 @@ miFillArcSliceD( slw = arc->height; if (slice.flip_top || slice.flip_bot) slw += (arc->height >> 1) + 1; - points = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * slw); + points = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * slw); if (!points) return; - widths = (int *)ALLOCATE_LOCAL(sizeof(int) * slw); + widths = (int *)xalloc(sizeof(int) * slw); if (!widths) { - DEALLOCATE_LOCAL(points); + xfree(points); return; } if (pGC->miTranslate) @@ -767,8 +767,8 @@ miFillArcSliceD( } } (*pGC->ops->FillSpans)(pDraw, pGC, pts - points, points, widths, FALSE); - DEALLOCATE_LOCAL(widths); - DEALLOCATE_LOCAL(points); + xfree(widths); + xfree(points); } /* MIPOLYFILLARC -- The public entry for the PolyFillArc request. diff --git a/mi/mifillrct.c b/mi/mifillrct.c index ca7e86445..e7646cf38 100644 --- a/mi/mifillrct.c +++ b/mi/mifillrct.c @@ -106,12 +106,12 @@ miPolyFillRect(pDrawable, pGC, nrectFill, prectInit) maxheight = max(maxheight, prect->height); } - pptFirst = (DDXPointPtr) ALLOCATE_LOCAL(maxheight * sizeof(DDXPointRec)); - pwFirst = (int *) ALLOCATE_LOCAL(maxheight * sizeof(int)); + pptFirst = (DDXPointPtr) xalloc(maxheight * sizeof(DDXPointRec)); + pwFirst = (int *) xalloc(maxheight * sizeof(int)); if(!pptFirst || !pwFirst) { - if (pwFirst) DEALLOCATE_LOCAL(pwFirst); - if (pptFirst) DEALLOCATE_LOCAL(pptFirst); + if (pwFirst) xfree(pwFirst); + if (pptFirst) xfree(pptFirst); return; } @@ -137,6 +137,6 @@ miPolyFillRect(pDrawable, pGC, nrectFill, prectInit) 1); prect++; } - DEALLOCATE_LOCAL(pwFirst); - DEALLOCATE_LOCAL(pptFirst); + xfree(pwFirst); + xfree(pptFirst); } diff --git a/mi/mifpolycon.c b/mi/mifpolycon.c index f85197157..d19f031d7 100644 --- a/mi/mifpolycon.c +++ b/mi/mifpolycon.c @@ -114,15 +114,15 @@ miFillSppPoly(dst, pgc, count, ptsIn, xTrans, yTrans, xFtrans, yFtrans) y = ymax - ymin + 1; if ((count < 3) || (y <= 0)) return; - ptsOut = FirstPoint = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * y); - width = FirstWidth = (int *) ALLOCATE_LOCAL(sizeof(int) * y); - Marked = (int *) ALLOCATE_LOCAL(sizeof(int) * count); + ptsOut = FirstPoint = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * y); + width = FirstWidth = (int *) xalloc(sizeof(int) * y); + Marked = (int *) xalloc(sizeof(int) * count); if(!ptsOut || !width || !Marked) { - if (Marked) DEALLOCATE_LOCAL(Marked); - if (width) DEALLOCATE_LOCAL(width); - if (ptsOut) DEALLOCATE_LOCAL(ptsOut); + if (Marked) xfree(Marked); + if (width) xfree(width); + if (ptsOut) xfree(ptsOut); return; } @@ -236,9 +236,9 @@ miFillSppPoly(dst, pgc, count, ptsIn, xTrans, yTrans, xFtrans, yFtrans) /* Finally, fill the spans we've collected */ (*pgc->ops->FillSpans)(dst, pgc, ptsOut-FirstPoint, FirstPoint, FirstWidth, 1); - DEALLOCATE_LOCAL(Marked); - DEALLOCATE_LOCAL(FirstWidth); - DEALLOCATE_LOCAL(FirstPoint); + xfree(Marked); + xfree(FirstWidth); + xfree(FirstPoint); } diff --git a/mi/miglblt.c b/mi/miglblt.c index 4db3eb62f..0155b5618 100644 --- a/mi/miglblt.c +++ b/mi/miglblt.c @@ -120,7 +120,8 @@ miPolyGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) FONTMAXBOUNDS(pfont,descent); pPixmap = (*pDrawable->pScreen->CreatePixmap)(pDrawable->pScreen, - width, height, 1); + width, height, 1, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) return; @@ -138,7 +139,7 @@ miPolyGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) DoChangeGC(pGCtmp, GCFunction|GCForeground|GCBackground, gcvals, 0); nbyLine = BitmapBytePad(width); - pbits = (unsigned char *)ALLOCATE_LOCAL(height*nbyLine); + pbits = (unsigned char *)xalloc(height*nbyLine); if (!pbits) { (*pDrawable->pScreen->DestroyPixmap)(pPixmap); @@ -189,7 +190,7 @@ miPolyGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) x += pci->metrics.characterWidth; } (*pDrawable->pScreen->DestroyPixmap)(pPixmap); - DEALLOCATE_LOCAL(pbits); + xfree(pbits); FreeScratchGC(pGCtmp); } diff --git a/mi/miinitext.c b/mi/miinitext.c index c1ed6e74a..286a857c6 100644 --- a/mi/miinitext.c +++ b/mi/miinitext.c @@ -635,16 +635,6 @@ InitExtensions(argc, argv) if (!noXFree86DRIExtension) XFree86DRIExtensionInit(); #endif #endif - -#ifdef GLXEXT -#ifdef INXDARWINAPP - DarwinGlxPushProvider(__DarwinglXMesaProvider); - if (!noGlxExtension) DarwinGlxExtensionInit(); -#else - GlxPushProvider(&__glXMesaProvider); - if (!noGlxExtension) GlxExtensionInit(); -#endif // INXDARWINAPP -#endif // GLXEXT #ifdef XFIXES /* must be before Render to layer DisplayCursor correctly */ if (!noXFixesExtension) XFixesExtensionInit(); @@ -670,6 +660,16 @@ InitExtensions(argc, argv) #ifdef DAMAGE if (!noDamageExtension) DamageExtensionInit(); #endif + +#ifdef GLXEXT +#ifdef INXDARWINAPP + DarwinGlxPushProvider(__DarwinglXMesaProvider); + if (!noGlxExtension) DarwinGlxExtensionInit(); +#else + GlxPushProvider(&__glXMesaProvider); + if (!noGlxExtension) GlxExtensionInit(); +#endif +#endif } void diff --git a/mi/mipolycon.c b/mi/mipolycon.c index e2d666e51..6aabad675 100644 --- a/mi/mipolycon.c +++ b/mi/mipolycon.c @@ -104,12 +104,12 @@ miFillConvexPoly(dst, pgc, count, ptsIn) dy = ymax - ymin + 1; if ((count < 3) || (dy < 0)) return(TRUE); - ptsOut = FirstPoint = (DDXPointPtr )ALLOCATE_LOCAL(sizeof(DDXPointRec)*dy); - width = FirstWidth = (int *)ALLOCATE_LOCAL(sizeof(int) * dy); + ptsOut = FirstPoint = (DDXPointPtr )xalloc(sizeof(DDXPointRec)*dy); + width = FirstWidth = (int *)xalloc(sizeof(int) * dy); if(!FirstPoint || !FirstWidth) { - if (FirstWidth) DEALLOCATE_LOCAL(FirstWidth); - if (FirstPoint) DEALLOCATE_LOCAL(FirstPoint); + if (FirstWidth) xfree(FirstWidth); + if (FirstPoint) xfree(FirstPoint); return(FALSE); } @@ -174,8 +174,8 @@ miFillConvexPoly(dst, pgc, count, ptsIn) /* in case we're called with non-convex polygon */ if(i < 0) { - DEALLOCATE_LOCAL(FirstWidth); - DEALLOCATE_LOCAL(FirstPoint); + xfree(FirstWidth); + xfree(FirstPoint); return(TRUE); } while (i-- > 0) @@ -209,8 +209,8 @@ miFillConvexPoly(dst, pgc, count, ptsIn) (*pgc->ops->FillSpans)(dst, pgc, ptsOut-FirstPoint,FirstPoint,FirstWidth, 1); - DEALLOCATE_LOCAL(FirstWidth); - DEALLOCATE_LOCAL(FirstPoint); + xfree(FirstWidth); + xfree(FirstPoint); return(TRUE); } diff --git a/mi/mipolygen.c b/mi/mipolygen.c index 0d2ecc430..7623fc40a 100644 --- a/mi/mipolygen.c +++ b/mi/mipolygen.c @@ -92,13 +92,13 @@ miFillGeneralPoly(dst, pgc, count, ptsIn) return(TRUE); if(!(pETEs = (EdgeTableEntry *) - ALLOCATE_LOCAL(sizeof(EdgeTableEntry) * count))) + xalloc(sizeof(EdgeTableEntry) * count))) return(FALSE); ptsOut = FirstPoint; width = FirstWidth; if (!miCreateETandAET(count, ptsIn, &ET, &AET, pETEs, &SLLBlock)) { - DEALLOCATE_LOCAL(pETEs); + xfree(pETEs); return(FALSE); } pSLL = ET.scanlines.next; @@ -224,7 +224,7 @@ miFillGeneralPoly(dst, pgc, count, ptsIn) * Get any spans that we missed by buffering */ (*pgc->ops->FillSpans)(dst, pgc, nPts, FirstPoint, FirstWidth, 1); - DEALLOCATE_LOCAL(pETEs); + xfree(pETEs); miFreeStorage(SLLBlock.next); return(TRUE); } diff --git a/mi/mipolypnt.c b/mi/mipolypnt.c index afe3f724a..56026bdbd 100644 --- a/mi/mipolypnt.c +++ b/mi/mipolypnt.c @@ -106,7 +106,7 @@ miPolyPoint(pDrawable, pGC, mode, npt, pptInit) DoChangeGC(pGC, GCFillStyle, &fsNew, 0); ValidateGC(pDrawable, pGC); } - if(!(pwidthInit = (int *)ALLOCATE_LOCAL(npt * sizeof(int)))) + if(!(pwidthInit = (int *)xalloc(npt * sizeof(int)))) return; pwidth = pwidthInit; for(i = 0; i < npt; i++) @@ -118,6 +118,6 @@ miPolyPoint(pDrawable, pGC, mode, npt, pptInit) DoChangeGC(pGC, GCFillStyle, &fsOld, 0); ValidateGC(pDrawable, pGC); } - DEALLOCATE_LOCAL(pwidthInit); + xfree(pwidthInit); } diff --git a/mi/mipolyrect.c b/mi/mipolyrect.c index a9ab90928..788624872 100644 --- a/mi/mipolyrect.c +++ b/mi/mipolyrect.c @@ -94,7 +94,7 @@ miPolyRectangle(pDraw, pGC, nrects, pRects) offset2 = pGC->lineWidth; offset1 = offset2 >> 1; offset3 = offset2 - offset1; - tmp = (xRectangle *) ALLOCATE_LOCAL(ntmp * sizeof (xRectangle)); + tmp = (xRectangle *) xalloc(ntmp * sizeof (xRectangle)); if (!tmp) return; t = tmp; @@ -162,7 +162,7 @@ miPolyRectangle(pDraw, pGC, nrects, pRects) } } (*pGC->ops->PolyFillRect) (pDraw, pGC, t - tmp, tmp); - DEALLOCATE_LOCAL ((pointer) tmp); + xfree ((pointer) tmp); } else { diff --git a/mi/miscrinit.c b/mi/miscrinit.c index 0dc6a437a..a1fb2e2f6 100644 --- a/mi/miscrinit.c +++ b/mi/miscrinit.c @@ -158,7 +158,7 @@ miCreateScreenResources(pScreen) /* create a pixmap with no data, then redirect it to point to * the screen */ - pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth); + pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth, 0); if (!pPixmap) return FALSE; diff --git a/mi/mispans.c b/mi/mispans.c index 530d9dff2..6f30155f5 100644 --- a/mi/mispans.c +++ b/mi/mispans.c @@ -528,7 +528,7 @@ void miFillUniqueSpanGroup(pDraw, pGC, spanGroup) xfree(points); xfree(widths); xfree(yspans); - xfree(ysizes); /* use (DE)ALLOCATE_LOCAL for these? */ + xfree(ysizes); /* use (DE)xalloc for these? */ } spanGroup->count = 0; diff --git a/mi/miwideline.c b/mi/miwideline.c index 8c6022f6f..f080ca11d 100644 --- a/mi/miwideline.c +++ b/mi/miwideline.c @@ -95,13 +95,13 @@ miFillPolyHelper (DrawablePtr pDrawable, GCPtr pGC, unsigned long pixel, if (!spanData) { - pptInit = (DDXPointPtr) ALLOCATE_LOCAL (overall_height * sizeof(*ppt)); + pptInit = (DDXPointPtr) xalloc (overall_height * sizeof(*ppt)); if (!pptInit) return; - pwidthInit = (int *) ALLOCATE_LOCAL (overall_height * sizeof(*pwidth)); + pwidthInit = (int *) xalloc (overall_height * sizeof(*pwidth)); if (!pwidthInit) { - DEALLOCATE_LOCAL (pptInit); + xfree (pptInit); return; } ppt = pptInit; @@ -167,8 +167,8 @@ miFillPolyHelper (DrawablePtr pDrawable, GCPtr pGC, unsigned long pixel, if (!spanData) { (*pGC->ops->FillSpans) (pDrawable, pGC, ppt - pptInit, pptInit, pwidthInit, TRUE); - DEALLOCATE_LOCAL (pwidthInit); - DEALLOCATE_LOCAL (pptInit); + xfree (pwidthInit); + xfree (pptInit); if (pixel != oldPixel) { DoChangeGC (pGC, GCForeground, &oldPixel, FALSE); @@ -1045,13 +1045,13 @@ miLineArc ( } if (!spanData) { - points = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * pGC->lineWidth); + points = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * pGC->lineWidth); if (!points) return; - widths = (int *)ALLOCATE_LOCAL(sizeof(int) * pGC->lineWidth); + widths = (int *)xalloc(sizeof(int) * pGC->lineWidth); if (!widths) { - DEALLOCATE_LOCAL(points); + xfree(points); return; } oldPixel = pGC->fgPixel; @@ -1086,8 +1086,8 @@ miLineArc ( if (!spanData) { (*pGC->ops->FillSpans)(pDraw, pGC, n, points, widths, TRUE); - DEALLOCATE_LOCAL(widths); - DEALLOCATE_LOCAL(points); + xfree(widths); + xfree(points); if (pixel != oldPixel) { DoChangeGC(pGC, GCForeground, &oldPixel, FALSE); diff --git a/mi/mizerarc.c b/mi/mizerarc.c index 9d4715a30..947b85aac 100644 --- a/mi/mizerarc.c +++ b/mi/mizerarc.c @@ -744,7 +744,7 @@ miZeroPolyArc(pDraw, pGC, narcs, parcs) dospans = (pGC->fillStyle != FillSolid); if (dospans) { - widths = (int *)ALLOCATE_LOCAL(sizeof(int) * numPts); + widths = (int *)xalloc(sizeof(int) * numPts); if (!widths) return; maxw = 0; @@ -761,12 +761,12 @@ miZeroPolyArc(pDraw, pGC, narcs, parcs) (unsigned char *) pGC->dash, (int)pGC->numInDashList, &dinfo.dashOffsetInit); } - points = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * numPts); + points = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * numPts); if (!points) { if (dospans) { - DEALLOCATE_LOCAL(widths); + xfree(widths); } return; } @@ -843,9 +843,9 @@ miZeroPolyArc(pDraw, pGC, narcs, parcs) } } } - DEALLOCATE_LOCAL(points); + xfree(points); if (dospans) { - DEALLOCATE_LOCAL(widths); + xfree(widths); } } diff --git a/mi/mizerline.c b/mi/mizerline.c index 073f1b20f..6604a0923 100644 --- a/mi/mizerline.c +++ b/mi/mizerline.c @@ -155,8 +155,8 @@ miZeroLine(pDraw, pGC, mode, npt, pptInit) width = xright - xleft + 1; height = ybottom - ytop + 1; list_len = (height >= width) ? height : width; - pspanInit = (DDXPointPtr)ALLOCATE_LOCAL(list_len * sizeof(DDXPointRec)); - pwidthInit = (int *)ALLOCATE_LOCAL(list_len * sizeof(int)); + pspanInit = (DDXPointPtr)xalloc(list_len * sizeof(DDXPointRec)); + pwidthInit = (int *)xalloc(list_len * sizeof(int)); if (!pspanInit || !pwidthInit) return; @@ -359,8 +359,8 @@ miZeroLine(pDraw, pGC, mode, npt, pptInit) (*pGC->ops->FillSpans)(pDraw, pGC, Nspans, pspanInit, pwidthInit, FALSE); - DEALLOCATE_LOCAL(pwidthInit); - DEALLOCATE_LOCAL(pspanInit); + xfree(pwidthInit); + xfree(pspanInit); } _X_EXPORT void diff --git a/miext/damage/damage.c b/miext/damage/damage.c index 350819be3..bd626b390 100755 --- a/miext/damage/damage.c +++ b/miext/damage/damage.c @@ -1398,7 +1398,7 @@ damageText (DrawablePtr pDrawable, imageblt = (textType == TT_IMAGE8) || (textType == TT_IMAGE16); - charinfo = (CharInfoPtr *) ALLOCATE_LOCAL(count * sizeof(CharInfoPtr)); + charinfo = (CharInfoPtr *) xalloc(count * sizeof(CharInfoPtr)); if (!charinfo) return x; @@ -1420,7 +1420,7 @@ damageText (DrawablePtr pDrawable, (*pGC->ops->PolyGlyphBlt)(pDrawable, pGC, x, y, n, charinfo, FONTGLYPHS(pGC->font)); } - DEALLOCATE_LOCAL(charinfo); + xfree(charinfo); return x + w; } diff --git a/miext/rootless/rootless.h b/miext/rootless/rootless.h index f83defeb6..d9fdb6adb 100644 --- a/miext/rootless/rootless.h +++ b/miext/rootless/rootless.h @@ -432,4 +432,8 @@ void RootlessUpdateScreenPixmap(ScreenPtr pScreen); */ void RootlessRepositionWindows(ScreenPtr pScreen); +/* + * Bring all windows to the front of the Aqua stack + */ +void RootlessOrderAllWindows (void); #endif /* _ROOTLESS_H */ diff --git a/miext/rootless/rootlessScreen.c b/miext/rootless/rootlessScreen.c index 06ba53a4b..18673a8b6 100644 --- a/miext/rootless/rootlessScreen.c +++ b/miext/rootless/rootlessScreen.c @@ -84,7 +84,7 @@ RootlessUpdateScreenPixmap(ScreenPtr pScreen) pPix = (*pScreen->GetScreenPixmap)(pScreen); if (pPix == NULL) { - pPix = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth); + pPix = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth, 0); (*pScreen->SetScreenPixmap)(pPix); } diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c index 512a4949f..e8f7a81a5 100644 --- a/miext/rootless/rootlessWindow.c +++ b/miext/rootless/rootlessWindow.c @@ -1376,3 +1376,29 @@ RootlessChangeBorderWidth(WindowPtr pWin, unsigned int width) RL_DEBUG_MSG("change border width end\n"); } + +/* + * RootlessOrderAllWindows + * Brings all X11 windows to the top of the window stack + * (i.e in front of Aqua windows) -- called when X11.app is given focus + */ +void +RootlessOrderAllWindows (void) +{ + int i; + WindowPtr pWin; + + RL_DEBUG_MSG("RootlessOrderAllWindows() "); + for (i = 0; i < screenInfo.numScreens; i++) { + if (screenInfo.screens[i] == NULL) continue; + pWin = WindowTable[i]; + if (pWin == NULL) continue; + + for (pWin = pWin->firstChild; pWin != NULL; pWin = pWin->nextSib) { + if (!pWin->realized) continue; + if (RootlessEnsureFrame(pWin) == NULL) continue; + RootlessReorderWindow (pWin); + } + } + RL_DEBUG_MSG("RootlessOrderAllWindows() done"); +} diff --git a/miext/rootless/safeAlpha/safeAlphaPicture.c b/miext/rootless/safeAlpha/safeAlphaPicture.c index 0ed2f3e79..57f1ae187 100644 --- a/miext/rootless/safeAlpha/safeAlphaPicture.c +++ b/miext/rootless/safeAlpha/safeAlphaPicture.c @@ -167,7 +167,7 @@ SafeAlphaComposite (CARD8 op, pDst->format = PICT_a8r8g8b8; } - if (pSrc->pDrawable && pMask->pDrawable && + if (pSrc && pMask && pSrc->pDrawable && pMask->pDrawable && !pSrc->transform && !pMask->transform && !pSrc->alphaMap && !pMask->alphaMap && !pMask->repeat && !pMask->componentAlpha && !pDst->alphaMap && diff --git a/miext/shadow/shadow.c b/miext/shadow/shadow.c index 74544b1a0..ef0df4091 100644 --- a/miext/shadow/shadow.c +++ b/miext/shadow/shadow.c @@ -233,7 +233,7 @@ shadowInit(ScreenPtr pScreen, ShadowUpdateProc update, ShadowWindowProc window) PixmapPtr pPixmap; pPixmap = pScreen->CreatePixmap(pScreen, pScreen->width, pScreen->height, - pScreen->rootDepth); + pScreen->rootDepth, 0); if (!pPixmap) return FALSE; diff --git a/os/WaitFor.c b/os/WaitFor.c index 1ef79bc34..9281ba8ea 100644 --- a/os/WaitFor.c +++ b/os/WaitFor.c @@ -217,7 +217,8 @@ WaitForSomething(int *pClientsReady) XFD_COPYSET(&AllSockets, &LastSelectMask); #ifdef SMART_SCHEDULE } - SmartScheduleIdle = TRUE; + SmartScheduleStopTimer (); + #endif BlockHandler((pointer)&wt, (pointer)&LastSelectMask); if (NewOutputPending) @@ -237,13 +238,7 @@ WaitForSomething(int *pClientsReady) selecterr = GetErrno(); WakeupHandler(i, (pointer)&LastSelectMask); #ifdef SMART_SCHEDULE - if (i >= 0) - { - SmartScheduleIdle = FALSE; - SmartScheduleIdleCount = 0; - if (SmartScheduleTimerStopped) - (void) SmartScheduleStartTimer (); - } + SmartScheduleStartTimer (); #endif if (i <= 0) /* An error or timeout occurred */ { diff --git a/os/connection.c b/os/connection.c index 357878100..e0bc18a3c 100644 --- a/os/connection.c +++ b/os/connection.c @@ -359,6 +359,52 @@ InitConnectionLimits(void) #endif } +/* + * If SIGUSR1 was set to SIG_IGN when the server started, assume that either + * + * a- The parent process is ignoring SIGUSR1 + * + * or + * + * b- The parent process is expecting a SIGUSR1 + * when the server is ready to accept connections + * + * In the first case, the signal will be harmless, in the second case, + * the signal will be quite useful. + */ +static void +InitParentProcess(void) +{ +#if !defined(WIN32) + OsSigHandlerPtr handler; + handler = OsSignal (SIGUSR1, SIG_IGN); + if ( handler == SIG_IGN) + RunFromSmartParent = TRUE; + OsSignal(SIGUSR1, handler); + ParentProcess = getppid (); +#ifdef __UNIXOS2__ + /* + * fg030505: under OS/2, xinit is not the parent process but + * the "grant parent" process of the server because execvpe() + * presents us an additional process number; + * GetPPID(pid) is part of libemxfix + */ + ParentProcess = GetPPID (ParentProcess); +#endif /* __UNIXOS2__ */ +#endif +} + +void +NotifyParentProcess(void) +{ +#if !defined(WIN32) + if (RunFromSmartParent) { + if (ParentProcess > 1) { + kill (ParentProcess, SIGUSR1); + } + } +#endif +} /***************** * CreateWellKnownSockets @@ -371,7 +417,6 @@ CreateWellKnownSockets(void) int i; int partial; char port[20]; - OsSigHandlerPtr handler; FD_ZERO(&AllSockets); FD_ZERO(&AllClients); @@ -425,33 +470,9 @@ CreateWellKnownSockets(void) OsSignal (SIGTERM, GiveUp); XFD_COPYSET (&WellKnownConnections, &AllSockets); ResetHosts(display); - /* - * Magic: If SIGUSR1 was set to SIG_IGN when - * the server started, assume that either - * - * a- The parent process is ignoring SIGUSR1 - * - * or - * - * b- The parent process is expecting a SIGUSR1 - * when the server is ready to accept connections - * - * In the first case, the signal will be harmless, - * in the second case, the signal will be quite - * useful - */ -#if !defined(WIN32) - handler = OsSignal (SIGUSR1, SIG_IGN); - if ( handler == SIG_IGN) - RunFromSmartParent = TRUE; - OsSignal(SIGUSR1, handler); - ParentProcess = getppid (); - if (RunFromSmartParent) { - if (ParentProcess > 1) { - kill (ParentProcess, SIGUSR1); - } - } -#endif + + InitParentProcess(); + #ifdef XDMCP XdmcpInit (); #endif @@ -501,16 +522,6 @@ ResetWellKnownSockets (void) ResetAuthorization (); ResetHosts(display); /* - * See above in CreateWellKnownSockets about SIGUSR1 - */ -#if !defined(WIN32) - if (RunFromSmartParent) { - if (ParentProcess > 1) { - kill (ParentProcess, SIGUSR1); - } - } -#endif - /* * restart XDMCP */ #ifdef XDMCP diff --git a/os/oscolor.c b/os/oscolor.c index e1756926d..f3ff9beac 100644 --- a/os/oscolor.c +++ b/os/oscolor.c @@ -49,13 +49,20 @@ SOFTWARE. #include <dix-config.h> #endif -#define USE_RGB_BUILTIN 1 - -#if USE_RGB_BUILTIN - #include <X11/keysym.h> #include "os.h" +typedef struct _builtinColor { + unsigned char red; + unsigned char green; + unsigned char blue; + unsigned short name; +} BuiltinColor; + +/* These have to come after the struct definition because despair. */ +#include "oscolor.h" +#define NUM_BUILTIN_COLORS (sizeof (BuiltinColors) / sizeof (BuiltinColors[0])) + static unsigned char OsToLower (unsigned char a) { @@ -90,17 +97,6 @@ OsStrCaseCmp (const unsigned char *s1, const unsigned char *s2, int l2) return c2 - c1; } -typedef struct _builtinColor { - unsigned char red; - unsigned char green; - unsigned char blue; - unsigned short name; -} BuiltinColor; - -#include "oscolor.h" - -#define NUM_BUILTIN_COLORS (sizeof (BuiltinColors) / sizeof (BuiltinColors[0])) - Bool OsInitColors(void) { @@ -141,146 +137,3 @@ OsLookupColor(int screen, } return FALSE; } - -#else - -/* - * This file builds the server's internal database mapping color names to - * RGB tuples by reading in an rgb.txt file. This is still slightly foolish, - * rgb.txt hasn't changed in years, we should really include a precompiled - * version into the server. - */ - -#include <stdio.h> -#include "os.h" -#include "opaque.h" - -#define HASHSIZE 63 - -typedef struct _dbEntry * dbEntryPtr; -typedef struct _dbEntry { - dbEntryPtr link; - unsigned short red; - unsigned short green; - unsigned short blue; - char name[1]; /* some compilers complain if [0] */ -} dbEntry; - -extern void CopyISOLatin1Lowered( - unsigned char * /*dest*/, - unsigned char * /*source*/, - int /*length*/); - -static dbEntryPtr hashTab[HASHSIZE]; - -static dbEntryPtr -lookup(char *name, int len, Bool create) -{ - unsigned int h = 0, g; - dbEntryPtr entry, *prev = NULL; - char *str = name; - - if (!(name = (char*)ALLOCATE_LOCAL(len +1))) return NULL; - CopyISOLatin1Lowered((unsigned char *)name, (unsigned char *)str, len); - name[len] = '\0'; - - for(str = name; *str; str++) { - h = (h << 4) + *str; - if ((g = h) & 0xf0000000) h ^= (g >> 24); - h &= g; - } - h %= HASHSIZE; - - if ( (entry = hashTab[h]) ) - { - for( ; entry; prev = (dbEntryPtr*)entry, entry = entry->link ) - if (! strcmp(name, entry->name) ) break; - } - else - prev = &(hashTab[h]); - - if (!entry && create && (entry = (dbEntryPtr)xalloc(sizeof(dbEntry) +len))) - { - *prev = entry; - entry->link = NULL; - strcpy( entry->name, name ); - } - - DEALLOCATE_LOCAL(name); - - return entry; -} - -Bool -OsInitColors(void) -{ - FILE *rgb; - char *path; - char line[BUFSIZ]; - char name[BUFSIZ]; - int red, green, blue, lineno = 0; - dbEntryPtr entry; - - static Bool was_here = FALSE; - - if (!was_here) - { - path = (char*)ALLOCATE_LOCAL(strlen(rgbPath) +5); - strcpy(path, rgbPath); - strcat(path, ".txt"); - if (!(rgb = fopen(path, "r"))) - { - ErrorF( "Couldn't open RGB_DB '%s'\n", rgbPath ); - DEALLOCATE_LOCAL(path); - return FALSE; - } - - while(fgets(line, sizeof(line), rgb)) - { - lineno++; - if (sscanf(line,"%d %d %d %[^\n]\n", &red, &green, &blue, name) == 4) - { - if (red >= 0 && red <= 0xff && - green >= 0 && green <= 0xff && - blue >= 0 && blue <= 0xff) - { - if ((entry = lookup(name, strlen(name), TRUE))) - { - entry->red = (red * 65535) / 255; - entry->green = (green * 65535) / 255; - entry->blue = (blue * 65535) / 255; - } - } - else - ErrorF("Value out of range: %s:%d\n", path, lineno); - } - else if (*line && *line != '#' && *line != '!') - ErrorF("Syntax Error: %s:%d\n", path, lineno); - } - - fclose(rgb); - DEALLOCATE_LOCAL(path); - - was_here = TRUE; - } - return TRUE; -} - -Bool -OsLookupColor(int screen, char *name, unsigned int len, - unsigned short *pred, unsigned short *pgreen, unsigned short *pblue) -{ - dbEntryPtr entry; - - if ((entry = lookup(name, len, FALSE))) - { - *pred = entry->red; - *pgreen = entry->green; - *pblue = entry->blue; - return TRUE; - } - - return FALSE; -} - -#endif /* USE_RGB_BUILTIN */ diff --git a/os/utils.c b/os/utils.c index 31cb0af92..322814669 100644 --- a/os/utils.c +++ b/os/utils.c @@ -577,7 +577,6 @@ void UseMsg(void) ErrorF("-c turns off key-click\n"); ErrorF("c # key-click volume (0-100)\n"); ErrorF("-cc int default color visual class\n"); - ErrorF("-co file color database file\n"); #ifdef COMMANDLINE_CHALLENGED_OPERATING_SYSTEMS ErrorF("-config file read options from file\n"); #endif @@ -783,13 +782,6 @@ ProcessCommandLine(int argc, char *argv[]) else UseMsg(); } - else if ( strcmp( argv[i], "-co") == 0) - { - if(++i < argc) - rgbPath = argv[i]; - else - UseMsg(); - } else if ( strcmp( argv[i], "-core") == 0) { CoreDump = TRUE; @@ -1513,10 +1505,6 @@ XNFstrdup(const char *s) #ifdef SMART_SCHEDULE -unsigned long SmartScheduleIdleCount; -Bool SmartScheduleIdle; -Bool SmartScheduleTimerStopped; - #ifdef SIGVTALRM #define SMART_SCHEDULE_POSSIBLE #endif @@ -1526,7 +1514,7 @@ Bool SmartScheduleTimerStopped; #define SMART_SCHEDULE_TIMER ITIMER_REAL #endif -static void +void SmartScheduleStopTimer (void) { #ifdef SMART_SCHEDULE_POSSIBLE @@ -1537,38 +1525,28 @@ SmartScheduleStopTimer (void) timer.it_value.tv_sec = 0; timer.it_value.tv_usec = 0; (void) setitimer (ITIMER_REAL, &timer, 0); - SmartScheduleTimerStopped = TRUE; #endif } -Bool +void SmartScheduleStartTimer (void) { #ifdef SMART_SCHEDULE_POSSIBLE struct itimerval timer; - SmartScheduleTimerStopped = FALSE; timer.it_interval.tv_sec = 0; timer.it_interval.tv_usec = SmartScheduleInterval * 1000; timer.it_value.tv_sec = 0; timer.it_value.tv_usec = SmartScheduleInterval * 1000; - return setitimer (ITIMER_REAL, &timer, 0) >= 0; + setitimer (ITIMER_REAL, &timer, 0); #endif - return FALSE; } #ifdef SMART_SCHEDULE_POSSIBLE static void SmartScheduleTimer (int sig) { - int olderrno = errno; - SmartScheduleTime += SmartScheduleInterval; - if (SmartScheduleIdle) - { - SmartScheduleStopTimer (); - } - errno = olderrno; } #endif @@ -1592,14 +1570,6 @@ SmartScheduleInit (void) perror ("sigaction for smart scheduler"); return FALSE; } - /* Set up the virtual timer */ - if (!SmartScheduleStartTimer ()) - { - perror ("scheduling timer"); - return FALSE; - } - /* stop the timer and wait for WaitForSomething to start it */ - SmartScheduleStopTimer (); return TRUE; #else return FALSE; diff --git a/randr/rrproperty.c b/randr/rrproperty.c index 5ac073f81..4617064e4 100644 --- a/randr/rrproperty.c +++ b/randr/rrproperty.c @@ -386,7 +386,7 @@ ProcRRListOutputProperties (ClientPtr client) for (prop = output->properties; prop; prop = prop->next) numProps++; if (numProps) - if(!(pAtoms = (Atom *)ALLOCATE_LOCAL(numProps * sizeof(Atom)))) + if(!(pAtoms = (Atom *)xalloc(numProps * sizeof(Atom)))) return(BadAlloc); rep.type = X_Reply; @@ -408,7 +408,7 @@ ProcRRListOutputProperties (ClientPtr client) { client->pSwapReplyFunc = (ReplySwapPtr)Swap32Write; WriteSwappedDataToClient(client, numProps * sizeof(Atom), pAtoms); - DEALLOCATE_LOCAL(pAtoms); + xfree(pAtoms); } return(client->noClientException); } diff --git a/record/record.c b/record/record.c index 5772baf46..2ca37822b 100644 --- a/record/record.c +++ b/record/record.c @@ -1726,7 +1726,7 @@ RecordRegisterClients(RecordContextPtr pContext, ClientPtr client, xRecordRegist * range for extension replies. */ maxSets = PREDEFSETS + 2 * stuff->nRanges; - si = (SetInfoPtr)ALLOCATE_LOCAL(sizeof(SetInfoRec) * maxSets); + si = (SetInfoPtr)xalloc(sizeof(SetInfoRec) * maxSets); if (!si) { err = BadAlloc; @@ -1933,7 +1933,7 @@ bailout: for (i = 0; i < maxSets; i++) if (si[i].intervals) xfree(si[i].intervals); - DEALLOCATE_LOCAL(si); + xfree(si); } if (pCanonClients && pCanonClients != (XID *)&stuff[1]) xfree(pCanonClients); @@ -2300,7 +2300,7 @@ ProcRecordGetContext(ClientPtr client) /* allocate and initialize space for record range info */ - pRangeInfo = (GetContextRangeInfoPtr)ALLOCATE_LOCAL( + pRangeInfo = (GetContextRangeInfoPtr)xalloc( nRCAPs * sizeof(GetContextRangeInfoRec)); if (!pRangeInfo && nRCAPs > 0) return BadAlloc; @@ -2417,7 +2417,7 @@ bailout: { if (pRangeInfo[i].pRanges) xfree(pRangeInfo[i].pRanges); } - DEALLOCATE_LOCAL(pRangeInfo); + xfree(pRangeInfo); return err; } /* ProcRecordGetContext */ @@ -2817,14 +2817,14 @@ RecordConnectionSetupInfo(RecordContextPtr pContext, NewClientInfoRec *pci) if (pci->client->swapped) { - char *pConnSetup = (char *)ALLOCATE_LOCAL(prefixsize + restsize); + char *pConnSetup = (char *)xalloc(prefixsize + restsize); if (!pConnSetup) return; SwapConnSetupPrefix(pci->prefix, pConnSetup); SwapConnSetupInfo(pci->setup, pConnSetup + prefixsize); RecordAProtocolElement(pContext, pci->client, XRecordClientStarted, (pointer)pConnSetup, prefixsize + restsize, 0); - DEALLOCATE_LOCAL(pConnSetup); + xfree(pConnSetup); } else { diff --git a/record/set.c b/record/set.c index 07a3a63a3..453452ec6 100644 --- a/record/set.c +++ b/record/set.c @@ -302,7 +302,7 @@ IntervalListCreateSet(RecordSetInterval *pIntervals, int nIntervals, if (nIntervals > 0) { - stackIntervals = (RecordSetInterval *)ALLOCATE_LOCAL( + stackIntervals = (RecordSetInterval *)xalloc( sizeof(RecordSetInterval) * nIntervals); if (!stackIntervals) return NULL; @@ -360,7 +360,7 @@ IntervalListCreateSet(RecordSetInterval *pIntervals, int nIntervals, memcpy(&prls[1], stackIntervals, nIntervals * sizeof(RecordSetInterval)); prls->nIntervals = nIntervals; bailout: - if (stackIntervals) DEALLOCATE_LOCAL(stackIntervals); + if (stackIntervals) xfree(stackIntervals); return (RecordSetPtr)prls; } diff --git a/render/glyph.c b/render/glyph.c index bb7c880d3..286e39d63 100644 --- a/render/glyph.c +++ b/render/glyph.c @@ -26,7 +26,7 @@ #include <dix-config.h> #endif -#include <stddef.h> +#include <stddef.h> /* buggy openssl/sha.h wants size_t */ #include <openssl/sha.h> #include "misc.h" @@ -611,20 +611,22 @@ GlyphExtents (int nlist, #define NeedsComponent(f) (PICT_FORMAT_A(f) != 0 && PICT_FORMAT_RGB(f) != 0) -/* Stub ABI compatibility for mi*Glyph, should go away */ _X_EXPORT void -miGlyphs (CARD8 op, - PicturePtr pSrc, - PicturePtr pDst, - PictFormatPtr maskFormat, - INT16 xSrc, - INT16 ySrc, - int nlist, - GlyphListPtr list, - GlyphPtr *glyphs) +CompositeGlyphs (CARD8 op, + PicturePtr pSrc, + PicturePtr pDst, + PictFormatPtr maskFormat, + INT16 xSrc, + INT16 ySrc, + int nlist, + GlyphListPtr lists, + GlyphPtr *glyphs) { - CompositeGlyphs(op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, list, - glyphs); + PictureScreenPtr ps = GetPictureScreen(pDst->pDrawable->pScreen); + + ValidatePicture (pSrc); + ValidatePicture (pDst); + (*ps->Glyphs) (op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, lists, glyphs); } Bool @@ -641,15 +643,15 @@ miUnrealizeGlyph (ScreenPtr pScreen, } _X_EXPORT void -CompositeGlyphs (CARD8 op, - PicturePtr pSrc, - PicturePtr pDst, - PictFormatPtr maskFormat, - INT16 xSrc, - INT16 ySrc, - int nlist, - GlyphListPtr list, - GlyphPtr *glyphs) +miGlyphs (CARD8 op, + PicturePtr pSrc, + PicturePtr pDst, + PictFormatPtr maskFormat, + INT16 xSrc, + INT16 ySrc, + int nlist, + GlyphListPtr list, + GlyphPtr *glyphs) { PicturePtr pPicture; PixmapPtr pMaskPixmap = 0; @@ -664,9 +666,6 @@ CompositeGlyphs (CARD8 op, BoxRec extents = {0, 0, 0, 0}; CARD32 component_alpha; - ValidatePicture (pSrc); - ValidatePicture (pDst); - if (maskFormat) { GCPtr pGC; @@ -679,7 +678,8 @@ CompositeGlyphs (CARD8 op, width = extents.x2 - extents.x1; height = extents.y2 - extents.y1; pMaskPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, - maskFormat->depth); + maskFormat->depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pMaskPixmap) return; component_alpha = NeedsComponent(maskFormat->format); diff --git a/render/mipict.c b/render/mipict.c index 5aad676f5..87dccbbda 100644 --- a/render/mipict.c +++ b/render/mipict.c @@ -636,7 +636,7 @@ miPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats) /* MI rendering routines */ ps->Composite = 0; /* requires DDX support */ - ps->Glyphs = NULL; + ps->Glyphs = miGlyphs; ps->CompositeRects = miCompositeRects; ps->Trapezoids = miTrapezoids; ps->Triangles = miTriangles; diff --git a/render/mirect.c b/render/mirect.c index fa9dab80b..38f4faf67 100644 --- a/render/mirect.c +++ b/render/mirect.c @@ -135,8 +135,8 @@ miCompositeRects (CARD8 op, if (!rgbaFormat) goto bail1; - pPixmap = (*pScreen->CreatePixmap) (pScreen, 1, 1, - rgbaFormat->depth); + pPixmap = (*pScreen->CreatePixmap) (pScreen, 1, 1, rgbaFormat->depth, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) goto bail2; diff --git a/render/mitrap.c b/render/mitrap.c index c6188061c..8bdc8a8d0 100644 --- a/render/mitrap.c +++ b/render/mitrap.c @@ -61,7 +61,7 @@ miCreateAlphaPicture (ScreenPtr pScreen, } pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, - pPictFormat->depth); + pPictFormat->depth, 0); if (!pPixmap) return 0; pGC = GetScratchGC (pPixmap->drawable.depth, pScreen); diff --git a/render/mitri.c b/render/mitri.c index 374e2fdc7..a92c19b7e 100644 --- a/render/mitri.c +++ b/render/mitri.c @@ -144,7 +144,7 @@ miTriStrip (CARD8 op, if (npoint < 3) return; ntri = npoint - 2; - tris = ALLOCATE_LOCAL (ntri * sizeof (xTriangle)); + tris = xalloc (ntri * sizeof (xTriangle)); if (!tris) return; for (tri = tris; npoint >= 3; npoint--, points++, tri++) @@ -154,7 +154,7 @@ miTriStrip (CARD8 op, tri->p3 = points[2]; } (*ps->Triangles) (op, pSrc, pDst, maskFormat, xSrc, ySrc, ntri, tris); - DEALLOCATE_LOCAL (tris); + xfree (tris); } void @@ -176,7 +176,7 @@ miTriFan (CARD8 op, if (npoint < 3) return; ntri = npoint - 2; - tris = ALLOCATE_LOCAL (ntri * sizeof (xTriangle)); + tris = xalloc (ntri * sizeof (xTriangle)); if (!tris) return; first = points++; @@ -187,5 +187,5 @@ miTriFan (CARD8 op, tri->p3 = points[1]; } (*ps->Triangles) (op, pSrc, pDst, maskFormat, xSrc, ySrc, ntri, tris); - DEALLOCATE_LOCAL (tris); + xfree (tris); } diff --git a/render/render.c b/render/render.c index b9ac45e96..040a9507f 100644 --- a/render/render.c +++ b/render/render.c @@ -1291,7 +1291,8 @@ ProcRenderAddGlyphs (ClientPtr client) } pDstPix = (pScreen->CreatePixmap) (pScreen, - width, height, depth); + width, height, depth, + CREATE_PIMXAP_USAGE_GLYPH_PICTURE); GlyphPicture (glyph)[screen] = pDst = CreatePicture (0, &pDstPix->drawable, @@ -1495,7 +1496,7 @@ ProcRenderCompositeGlyphs (ClientPtr client) glyphsBase = glyphsLocal; else { - glyphsBase = (GlyphPtr *) ALLOCATE_LOCAL (nglyph * sizeof (GlyphPtr)); + glyphsBase = (GlyphPtr *) xalloc (nglyph * sizeof (GlyphPtr)); if (!glyphsBase) return BadAlloc; } @@ -1503,7 +1504,7 @@ ProcRenderCompositeGlyphs (ClientPtr client) listsBase = listsLocal; else { - listsBase = (GlyphListPtr) ALLOCATE_LOCAL (nlist * sizeof (GlyphListRec)); + listsBase = (GlyphListPtr) xalloc (nlist * sizeof (GlyphListRec)); if (!listsBase) return BadAlloc; } @@ -1528,9 +1529,9 @@ ProcRenderCompositeGlyphs (ClientPtr client) { client->errorValue = gs; if (glyphsBase != glyphsLocal) - DEALLOCATE_LOCAL (glyphsBase); + xfree (glyphsBase); if (listsBase != listsLocal) - DEALLOCATE_LOCAL (listsBase); + xfree (listsBase); return RenderErrBase + BadGlyphSet; } } @@ -1584,9 +1585,9 @@ ProcRenderCompositeGlyphs (ClientPtr client) glyphsBase); if (glyphsBase != glyphsLocal) - DEALLOCATE_LOCAL (glyphsBase); + xfree (glyphsBase); if (listsBase != listsLocal) - DEALLOCATE_LOCAL (listsBase); + xfree (listsBase); return client->noClientException; } @@ -1723,7 +1724,8 @@ ProcRenderCreateCursor (ClientPtr client) xfree (mskbits); return (BadImplementation); } - pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, 32); + pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, 32, + CREATE_PIXMAP_USAGE_SCRATCH); if (!pPixmap) { xfree (argbbits); @@ -3075,7 +3077,7 @@ PanoramiXRenderFillRectangles (ClientPtr client) RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderFillRectanglesReq); if (extra_len && - (extra = (char *) ALLOCATE_LOCAL (extra_len))) + (extra = (char *) xalloc (extra_len))) { memcpy (extra, stuff + 1, extra_len); FOR_NSCREENS_FORWARD(j) { @@ -3101,7 +3103,7 @@ PanoramiXRenderFillRectangles (ClientPtr client) result = (*PanoramiXSaveRenderVector[X_RenderFillRectangles]) (client); if(result != Success) break; } - DEALLOCATE_LOCAL(extra); + xfree(extra); } return result; @@ -3126,7 +3128,7 @@ PanoramiXRenderTrapezoids(ClientPtr client) extra_len = (client->req_len << 2) - sizeof (xRenderTrapezoidsReq); if (extra_len && - (extra = (char *) ALLOCATE_LOCAL (extra_len))) { + (extra = (char *) xalloc (extra_len))) { memcpy (extra, stuff + 1, extra_len); FOR_NSCREENS_FORWARD(j) { @@ -3163,7 +3165,7 @@ PanoramiXRenderTrapezoids(ClientPtr client) if(result != Success) break; } - DEALLOCATE_LOCAL(extra); + xfree(extra); } return result; @@ -3188,7 +3190,7 @@ PanoramiXRenderTriangles(ClientPtr client) extra_len = (client->req_len << 2) - sizeof (xRenderTrianglesReq); if (extra_len && - (extra = (char *) ALLOCATE_LOCAL (extra_len))) { + (extra = (char *) xalloc (extra_len))) { memcpy (extra, stuff + 1, extra_len); FOR_NSCREENS_FORWARD(j) { @@ -3221,7 +3223,7 @@ PanoramiXRenderTriangles(ClientPtr client) if(result != Success) break; } - DEALLOCATE_LOCAL(extra); + xfree(extra); } return result; @@ -3246,7 +3248,7 @@ PanoramiXRenderTriStrip(ClientPtr client) extra_len = (client->req_len << 2) - sizeof (xRenderTriStripReq); if (extra_len && - (extra = (char *) ALLOCATE_LOCAL (extra_len))) { + (extra = (char *) xalloc (extra_len))) { memcpy (extra, stuff + 1, extra_len); FOR_NSCREENS_FORWARD(j) { @@ -3275,7 +3277,7 @@ PanoramiXRenderTriStrip(ClientPtr client) if(result != Success) break; } - DEALLOCATE_LOCAL(extra); + xfree(extra); } return result; @@ -3300,7 +3302,7 @@ PanoramiXRenderTriFan(ClientPtr client) extra_len = (client->req_len << 2) - sizeof (xRenderTriFanReq); if (extra_len && - (extra = (char *) ALLOCATE_LOCAL (extra_len))) { + (extra = (char *) xalloc (extra_len))) { memcpy (extra, stuff + 1, extra_len); FOR_NSCREENS_FORWARD(j) { @@ -3329,7 +3331,7 @@ PanoramiXRenderTriFan(ClientPtr client) if(result != Success) break; } - DEALLOCATE_LOCAL(extra); + xfree(extra); } return result; @@ -3354,7 +3356,7 @@ PanoramiXRenderColorTrapezoids(ClientPtr client) extra_len = (client->req_len << 2) - sizeof (xRenderColorTrapezoidsReq); if (extra_len && - (extra = (char *) ALLOCATE_LOCAL (extra_len))) { + (extra = (char *) xalloc (extra_len))) { memcpy (extra, stuff + 1, extra_len); FOR_NSCREENS_FORWARD(j) { @@ -3375,7 +3377,7 @@ PanoramiXRenderColorTrapezoids(ClientPtr client) if(result != Success) break; } - DEALLOCATE_LOCAL(extra); + xfree(extra); } return result; @@ -3398,7 +3400,7 @@ PanoramiXRenderColorTriangles(ClientPtr client) extra_len = (client->req_len << 2) - sizeof (xRenderColorTrianglesReq); if (extra_len && - (extra = (char *) ALLOCATE_LOCAL (extra_len))) { + (extra = (char *) xalloc (extra_len))) { memcpy (extra, stuff + 1, extra_len); FOR_NSCREENS_FORWARD(j) { @@ -3419,7 +3421,7 @@ PanoramiXRenderColorTriangles(ClientPtr client) if(result != Success) break; } - DEALLOCATE_LOCAL(extra); + xfree(extra); } return result; @@ -3442,7 +3444,7 @@ PanoramiXRenderAddTraps (ClientPtr client) RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderAddTrapsReq); if (extra_len && - (extra = (char *) ALLOCATE_LOCAL (extra_len))) + (extra = (char *) xalloc (extra_len))) { memcpy (extra, stuff + 1, extra_len); x_off = stuff->xOff; @@ -3459,7 +3461,7 @@ PanoramiXRenderAddTraps (ClientPtr client) result = (*PanoramiXSaveRenderVector[X_RenderAddTraps]) (client); if(result != Success) break; } - DEALLOCATE_LOCAL(extra); + xfree(extra); } return result; @@ -1318,7 +1318,7 @@ unsigned i,len; char *desc,*start; len= (rep->length*4)-(SIZEOF(xkbGetMapReply)-SIZEOF(xGenericReply)); - start= desc= (char *)ALLOCATE_LOCAL(len); + start= desc= (char *)xalloc(len); if (!start) return BadAlloc; if ( rep->nTypes>0 ) @@ -1358,7 +1358,7 @@ char *desc,*start; } WriteToClient(client, (i=SIZEOF(xkbGetMapReply)), (char *)rep); WriteToClient(client, len, start); - DEALLOCATE_LOCAL((char *)start); + xfree((char *)start); return client->noClientException; } @@ -2505,7 +2505,7 @@ int size; size= rep->length*4; if (size>0) { - data = (char *)ALLOCATE_LOCAL(size); + data = (char *)xalloc(size); if (data) { register unsigned i,bit; xkbModsWireDesc * grp; @@ -2556,7 +2556,7 @@ int size; WriteToClient(client, SIZEOF(xkbGetCompatMapReply), (char *)rep); if (data) { WriteToClient(client, size, data); - DEALLOCATE_LOCAL((char *)data); + xfree((char *)data); } return client->noClientException; } @@ -2807,7 +2807,7 @@ register unsigned bit; length = rep->length*4; if (length>0) { CARD8 *to; - to= map= (CARD8 *)ALLOCATE_LOCAL(length); + to= map= (CARD8 *)xalloc(length); if (map) { xkbIndicatorMapWireDesc *wire = (xkbIndicatorMapWireDesc *)to; for (i=0,bit=1;i<XkbNumIndicators;i++,bit<<=1) { @@ -2846,7 +2846,7 @@ register unsigned bit; WriteToClient(client, SIZEOF(xkbGetIndicatorMapReply), (char *)rep); if (map) { WriteToClient(client, length, (char *)map); - DEALLOCATE_LOCAL((char *)map); + xfree((char *)map); } return client->noClientException; } @@ -3295,7 +3295,7 @@ register int n; swapl(&rep->indicators,n); } - start = desc = (char *)ALLOCATE_LOCAL(length); + start = desc = (char *)xalloc(length); if ( !start ) return BadAlloc; if (xkb->names) { @@ -3419,7 +3419,7 @@ register int n; } WriteToClient(client, SIZEOF(xkbGetNamesReply), (char *)rep); WriteToClient(client, length, start); - DEALLOCATE_LOCAL((char *)start); + xfree((char *)start); return client->noClientException; } @@ -4317,7 +4317,7 @@ XkbSendGeometry( ClientPtr client, if (geom!=NULL) { len= rep->length*4; - start= desc= (char *)ALLOCATE_LOCAL(len); + start= desc= (char *)xalloc(len); if (!start) return BadAlloc; desc= XkbWriteCountedString(desc,geom->label_font,client->swapped); @@ -4361,7 +4361,7 @@ XkbSendGeometry( ClientPtr client, if (len>0) WriteToClient(client, len, start); if (start!=NULL) - DEALLOCATE_LOCAL((char *)start); + xfree((char *)start); if (freeGeom) XkbFreeGeometry(geom,XkbGeomAllMask,True); return client->noClientException; @@ -5763,12 +5763,12 @@ char * str; } WriteToClient(client,SIZEOF(xkbGetDeviceInfoReply), (char *)&rep); - str= (char*) ALLOCATE_LOCAL(nameLen); + str= (char*) xalloc(nameLen); if (!str) return BadAlloc; XkbWriteCountedString(str,dev->name,client->swapped); WriteToClient(client,nameLen,str); - DEALLOCATE_LOCAL(str); + xfree(str); length-= nameLen; if (rep.nBtnsRtrn>0) { diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c index fbd281536..50a611eb4 100644 --- a/xkb/xkbAccessX.c +++ b/xkb/xkbAccessX.c @@ -692,6 +692,8 @@ ProcessPointerEvent( register xEvent * xE, DeviceIntPtr dev = inputInfo.keyboard; XkbSrvInfoPtr xkbi = dev->key->xkbInfo; unsigned changed = 0; +ProcessInputProc backupproc; +xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(mouse); xkbi->shiftKeyCount = 0; xkbi->lastPtrEventTime= xE->u.keyButtonPointer.time; @@ -703,7 +705,26 @@ unsigned changed = 0; xkbi->lockedPtrButtons&= ~(1<<(xE->u.u.detail&0x7)); changed |= XkbPointerButtonMask; } - CoreProcessPointerEvent(xE,mouse,count); + + /* Guesswork. mostly. + * xkb actuall goes through some effort to transparently wrap the + * processInputProcs (see XkbSetExtension). But we all love fun, so the + * previous XKB implementation just hardcoded the CPPE call here instead + * of unwrapping like anybody with any sense of decency would do. + * I got no clue what the correct thing to do is, but my guess is that + * it's not hardcoding. I may be wrong. whatever it is, don't come whining + * to me. I just work here. + * + * Anyway. here's the old call, if you don't like the wrapping, revert it. + * + * CoreProcessPointerEvent(xE,mouse,count); + * + * see. it's still steaming. told you. (whot) + */ + UNWRAP_PROCESS_INPUT_PROC(mouse, xkbPrivPtr, backupproc); + mouse->public.processInputProc(xE, mouse, count); + COND_WRAP_PROCESS_INPUT_PROC(mouse, xkbPrivPtr, + backupproc, xkbUnwrapProc); xkbi->state.ptr_buttons = mouse->button->state; diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c index 822afffcb..380a232d1 100644 --- a/xkb/xkbActions.c +++ b/xkb/xkbActions.c @@ -36,22 +36,25 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <X11/keysym.h> #include "misc.h" #include "inputstr.h" +#include "exevents.h" #include <xkbsrv.h> #include "xkb.h" #include <ctype.h> +#define EXTENSION_EVENT_BASE 64 -static DevPrivateKey xkbDevicePrivateKey = &xkbDevicePrivateKey; +DevPrivateKey xkbDevicePrivateKey = &xkbDevicePrivateKey; -static void +void xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc, pointer data) { xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(device); ProcessInputProc tmp = device->public.processInputProc; + ProcessInputProc dummy; /* unused, but neede for macro */ if(xkbPrivPtr->unwrapProc) xkbPrivPtr->unwrapProc = NULL; - UNWRAP_PROCESS_INPUT_PROC(device,xkbPrivPtr); + UNWRAP_PROCESS_INPUT_PROC(device,xkbPrivPtr, dummy); proc(device,data); WRAP_PROCESS_INPUT_PROC(device,xkbPrivPtr, tmp,xkbUnwrapProc); @@ -63,23 +66,20 @@ XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc) { xkbDeviceInfoPtr xkbPrivPtr; - xkbPrivPtr = (xkbDeviceInfoPtr) xalloc(sizeof(xkbDeviceInfoRec)); + xkbPrivPtr = (xkbDeviceInfoPtr) xcalloc(1, sizeof(xkbDeviceInfoRec)); if (!xkbPrivPtr) return; xkbPrivPtr->unwrapProc = NULL; dixSetPrivate(&device->devPrivates, xkbDevicePrivateKey, xkbPrivPtr); - WRAP_PROCESS_INPUT_PROC(device,xkbPrivPtr, - proc,xkbUnwrapProc); + WRAP_PROCESS_INPUT_PROC(device, xkbPrivPtr, proc, xkbUnwrapProc); } -#ifdef XINPUT extern void ProcessOtherEvent( xEvent * /* xE */, DeviceIntPtr /* dev */, int /* count */ ); -#endif /***====================================================================***/ @@ -227,22 +227,6 @@ XkbAction fake; #define SYNTHETIC_KEYCODE 1 #define BTN_ACT_FLAG 0x100 -typedef struct _XkbFilter { - CARD16 keycode; - CARD8 what; - CARD8 active; - CARD8 filterOthers; - CARD32 priv; - XkbAction upAction; - int (*filter)( - XkbSrvInfoPtr /* xkbi */, - struct _XkbFilter * /* filter */, - unsigned /* keycode */, - XkbAction * /* action */ - ); - struct _XkbFilter *next; -} XkbFilterRec,*XkbFilterPtr; - static int _XkbFilterSetState( XkbSrvInfoPtr xkbi, XkbFilterPtr filter, @@ -407,7 +391,6 @@ _XkbFilterLockState( XkbSrvInfoPtr xkbi, unsigned keycode, XkbAction * pAction) { - if (pAction&&(pAction->type==XkbSA_LockGroup)) { if (pAction->group.flags&XkbSA_GroupAbsolute) xkbi->state.locked_group= XkbSAGroup(&pAction->group); @@ -679,6 +662,7 @@ _XkbFilterPointerBtn( XkbSrvInfoPtr xkbi, &old,xkbi->desc->ctrls, &cn,False)) { cn.keycode = keycode; + /* XXX: what about DeviceKeyPress? */ cn.eventType = KeyPress; cn.requestMajor = 0; cn.requestMinor = 0; @@ -743,6 +727,7 @@ XkbEventCauseRec cause; ctrls->enabled_ctrls|= change; if (XkbComputeControlsNotify(kbd,&old,ctrls,&cn,False)) { cn.keycode = keycode; + /* XXX: what about DeviceKeyPress? */ cn.eventType = KeyPress; cn.requestMajor = 0; cn.requestMinor = 0; @@ -858,6 +843,7 @@ int x,y; XkbStateRec old; unsigned mods,mask,oldCoreState = 0,oldCorePrevState = 0; xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(xkbi->device); +ProcessInputProc backupproc; /* never actually used uninitialised, but gcc isn't smart enough * to work that out. */ @@ -883,6 +869,7 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(xkbi->device); filter->filter = _XkbFilterRedirectKey; filter->upAction = *pAction; + /* XXX: what about DeviceKeyPress */ ev.u.u.type = KeyPress; ev.u.u.detail = pAction->redirect.new_key; @@ -910,10 +897,14 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(xkbi->device); realMods = xkbi->device->key->modifierMap[ev.u.u.detail]; xkbi->device->key->modifierMap[ev.u.u.detail] = 0; - UNWRAP_PROCESS_INPUT_PROC(xkbi->device,xkbPrivPtr); + /* XXX: Bad! Since the switch to XI devices xkbi->device will be the + * XI device. Sending a core event through ProcessOtherEvent will + * cause trouble. Somebody should fix this. + */ + UNWRAP_PROCESS_INPUT_PROC(xkbi->device,xkbPrivPtr, backupproc); xkbi->device->public.processInputProc(&ev,xkbi->device,1); COND_WRAP_PROCESS_INPUT_PROC(xkbi->device, xkbPrivPtr, - ProcessKeyboardEvent,xkbUnwrapProc); + backupproc,xkbUnwrapProc); xkbi->device->key->modifierMap[ev.u.u.detail] = realMods; if ( mask || mods ) { @@ -924,6 +915,7 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(xkbi->device); } else if (filter->keycode==keycode) { + /* XXX: what about DeviceKeyRelease */ ev.u.u.type = KeyRelease; ev.u.u.detail = filter->upAction.redirect.new_key; @@ -951,10 +943,14 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(xkbi->device); realMods = xkbi->device->key->modifierMap[ev.u.u.detail]; xkbi->device->key->modifierMap[ev.u.u.detail] = 0; - UNWRAP_PROCESS_INPUT_PROC(xkbi->device,xkbPrivPtr); + /* XXX: Bad! Since the switch to XI devices xkbi->device will be the + * XI device. Sending a core event through ProcessOtherEvent will + * cause trouble. Somebody should fix this. + */ + UNWRAP_PROCESS_INPUT_PROC(xkbi->device,xkbPrivPtr, backupproc); xkbi->device->public.processInputProc(&ev,xkbi->device,1); COND_WRAP_PROCESS_INPUT_PROC(xkbi->device, xkbPrivPtr, - ProcessKeyboardEvent,xkbUnwrapProc); + backupproc,xkbUnwrapProc); xkbi->device->key->modifierMap[ev.u.u.detail] = realMods; if ( mask || mods ) { @@ -1014,7 +1010,6 @@ _XkbFilterXF86Private( XkbSrvInfoPtr xkbi, return 1; } -#ifdef XINPUT static int _XkbFilterDeviceBtn( XkbSrvInfoPtr xkbi, @@ -1088,34 +1083,33 @@ int button; } return 0; } -#endif - -static int szFilters = 0; -static XkbFilterPtr filters = NULL; static XkbFilterPtr _XkbNextFreeFilter( - void + XkbSrvInfoPtr xkbi ) { register int i; - if (szFilters==0) { - szFilters = 4; - filters = _XkbTypedCalloc(szFilters,XkbFilterRec); + if (xkbi->szFilters==0) { + xkbi->szFilters = 4; + xkbi->filters = _XkbTypedCalloc(xkbi->szFilters,XkbFilterRec); /* 6/21/93 (ef) -- XXX! deal with allocation failure */ } - for (i=0;i<szFilters;i++) { - if (!filters[i].active) { - filters[i].keycode = 0; - return &filters[i]; + for (i=0;i<xkbi->szFilters;i++) { + if (!xkbi->filters[i].active) { + xkbi->filters[i].keycode = 0; + return &xkbi->filters[i]; } } - szFilters*=2; - filters= _XkbTypedRealloc(filters,szFilters,XkbFilterRec); + xkbi->szFilters*=2; + xkbi->filters= _XkbTypedRealloc(xkbi->filters, + xkbi->szFilters, + XkbFilterRec); /* 6/21/93 (ef) -- XXX! deal with allocation failure */ - bzero(&filters[szFilters/2],(szFilters/2)*sizeof(XkbFilterRec)); - return &filters[szFilters/2]; + bzero(&xkbi->filters[xkbi->szFilters/2], + (xkbi->szFilters/2)*sizeof(XkbFilterRec)); + return &xkbi->filters[xkbi->szFilters/2]; } static int @@ -1124,9 +1118,10 @@ _XkbApplyFilters(XkbSrvInfoPtr xkbi,unsigned kc,XkbAction *pAction) register int i,send; send= 1; - for (i=0;i<szFilters;i++) { - if ((filters[i].active)&&(filters[i].filter)) - send= ((*filters[i].filter)(xkbi,&filters[i],kc,pAction)&&send); + for (i=0;i<xkbi->szFilters;i++) { + if ((xkbi->filters[i].active)&&(xkbi->filters[i].filter)) + send= ((*xkbi->filters[i].filter)(xkbi,&xkbi->filters[i],kc,pAction) + && send); } return send; } @@ -1145,15 +1140,15 @@ XkbAction act; XkbFilterPtr filter; Bool keyEvent; Bool pressEvent; -#ifdef XINPUT -Bool xiEvent; -#endif +ProcessInputProc backupproc; xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev); keyc= kbd->key; xkbi= keyc->xkbInfo; key= xE->u.u.detail; + /* The state may change, so if we're not in the middle of sending a state + * notify, prepare for it */ if ((xkbi->flags&_XkbStateNotifyInProgress)==0) { oldState= xkbi->state; xkbi->flags|= _XkbStateNotifyInProgress; @@ -1165,18 +1160,10 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev); xkbi->groupChange = 0; sendEvent = 1; -#ifdef XINPUT keyEvent= ((xE->u.u.type==KeyPress)||(xE->u.u.type==DeviceKeyPress)|| (xE->u.u.type==KeyRelease)||(xE->u.u.type==DeviceKeyRelease)); pressEvent= (xE->u.u.type==KeyPress)||(xE->u.u.type==DeviceKeyPress)|| (xE->u.u.type==ButtonPress)||(xE->u.u.type==DeviceButtonPress); - xiEvent= (xE->u.u.type==DeviceKeyPress)||(xE->u.u.type==DeviceKeyRelease)|| - (xE->u.u.type==DeviceButtonPress)|| - (xE->u.u.type==DeviceButtonRelease); -#else - keyEvent= (xE->u.u.type==KeyPress)||(xE->u.u.type==KeyRelease); - pressEvent= (xE->u.u.type==KeyPress)||(xE->u.u.type==ButtonPress); -#endif if (pressEvent) { if (keyEvent) @@ -1190,62 +1177,60 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev); switch (act.type) { case XkbSA_SetMods: case XkbSA_SetGroup: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent = _XkbFilterSetState(xkbi,filter,key,&act); break; case XkbSA_LatchMods: case XkbSA_LatchGroup: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent=_XkbFilterLatchState(xkbi,filter,key,&act); break; case XkbSA_LockMods: case XkbSA_LockGroup: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent=_XkbFilterLockState(xkbi,filter,key,&act); break; case XkbSA_ISOLock: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent=_XkbFilterISOLock(xkbi,filter,key,&act); break; case XkbSA_MovePtr: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent= _XkbFilterPointerMove(xkbi,filter,key,&act); break; case XkbSA_PtrBtn: case XkbSA_LockPtrBtn: case XkbSA_SetPtrDflt: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent= _XkbFilterPointerBtn(xkbi,filter,key,&act); break; case XkbSA_Terminate: sendEvent= XkbDDXTerminateServer(dev,key,&act); break; case XkbSA_SwitchScreen: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent=_XkbFilterSwitchScreen(xkbi,filter,key,&act); break; case XkbSA_SetControls: case XkbSA_LockControls: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent=_XkbFilterControls(xkbi,filter,key,&act); break; case XkbSA_ActionMessage: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent=_XkbFilterActionMessage(xkbi,filter,key,&act); break; case XkbSA_RedirectKey: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent= _XkbFilterRedirectKey(xkbi,filter,key,&act); break; -#ifdef XINPUT case XkbSA_DeviceBtn: case XkbSA_LockDeviceBtn: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent= _XkbFilterDeviceBtn(xkbi,filter,key,&act); break; -#endif case XkbSA_XFree86Private: - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); sendEvent= _XkbFilterXF86Private(xkbi,filter,key,&act); break; } @@ -1282,24 +1267,21 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev); } if (sendEvent) { -#ifdef XINPUT - if (xiEvent) - ProcessOtherEvent(xE,dev,count); - else -#endif if (keyEvent) { realMods = keyc->modifierMap[key]; keyc->modifierMap[key] = 0; - UNWRAP_PROCESS_INPUT_PROC(dev,xkbPrivPtr); - dev->public.processInputProc(xE,dev,count); - COND_WRAP_PROCESS_INPUT_PROC(dev, xkbPrivPtr, - ProcessKeyboardEvent,xkbUnwrapProc); + } + + UNWRAP_PROCESS_INPUT_PROC(dev,xkbPrivPtr, backupproc); + dev->public.processInputProc(xE,dev,count); + COND_WRAP_PROCESS_INPUT_PROC(dev, xkbPrivPtr, + backupproc,xkbUnwrapProc); + if (keyEvent) keyc->modifierMap[key] = realMods; - } - else CoreProcessPointerEvent(xE,dev,count); } - else if (keyEvent) + else if (keyEvent) { FixKeyState(xE,dev); + } xkbi->prev_state= oldState; XkbComputeDerivedState(xkbi); @@ -1321,7 +1303,7 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev); if (changed) { XkbEventCauseRec cause; XkbSetCauseKey(&cause,key,xE->u.u.type); - XkbUpdateIndicators(dev,changed,True,NULL,&cause); + XkbUpdateIndicators(dev,changed,False,NULL,&cause); } return; } @@ -1345,7 +1327,7 @@ unsigned clear; act.type = XkbSA_LatchMods; act.mods.flags = 0; act.mods.mask = mask&latches; - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); _XkbFilterLatchState(xkbi,filter,SYNTHETIC_KEYCODE,&act); _XkbFilterLatchState(xkbi,filter,SYNTHETIC_KEYCODE,(XkbAction *)NULL); return Success; @@ -1365,7 +1347,7 @@ XkbAction act; act.type = XkbSA_LatchGroup; act.group.flags = 0; XkbSASetGroup(&act.group,group); - filter = _XkbNextFreeFilter(); + filter = _XkbNextFreeFilter(xkbi); _XkbFilterLatchState(xkbi,filter,SYNTHETIC_KEYCODE,&act); _XkbFilterLatchState(xkbi,filter,SYNTHETIC_KEYCODE,(XkbAction *)NULL); return Success; diff --git a/xkb/xkbEvents.c b/xkb/xkbEvents.c index 15b4949e5..604cc48dd 100644 --- a/xkb/xkbEvents.c +++ b/xkb/xkbEvents.c @@ -34,6 +34,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <X11/Xproto.h> #include <X11/keysym.h> #include <X11/extensions/XI.h> +#include <X11/extensions/XIproto.h> #include "inputstr.h" #include "windowstr.h" #include <xkbsrv.h> @@ -813,7 +814,9 @@ XkbSrvInfoPtr xkbi; if ( pClient->xkbClientFlags & _XkbClientInitialized ) { #ifdef DEBUG if ((xkbDebugFlags&0x10)&& - ((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease))) { + ((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease)|| + (xE[0].u.u.type==DeviceKeyPress)|| + (xE[0].u.u.type == DeviceKeyRelease))) { ErrorF("XKbFilterWriteEvents:\n"); ErrorF(" Event state= 0x%04x\n",xE[0].u.keyButtonPointer.state); ErrorF(" XkbLastRepeatEvent!=xE (0x%p!=0x%p) %s\n", @@ -832,7 +835,9 @@ XkbSrvInfoPtr xkbi; return False; } if ((pXDev->grab != NullGrab) && pXDev->fromPassiveGrab && - ((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease))) { + ((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease)|| + (xE[0].u.u.type==DeviceKeyPress)|| + (xE[0].u.u.type == DeviceKeyRelease))) { register unsigned state,flags; flags= pClient->xkbClientFlags; @@ -877,10 +882,12 @@ XkbSrvInfoPtr xkbi; type= xE[i].u.u.type; #ifdef DEBUG if ((xkbDebugFlags&0x4)&& - ((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease))) { + ((xE[i].u.u.type==KeyPress)||(xE[i].u.u.type==KeyRelease)|| + (xE[i].u.u.type==DeviceKeyPress)|| + (xE[i].u.u.type == DeviceKeyRelease))) { XkbStatePtr s= &xkbi->state; ErrorF("XKbFilterWriteEvents (non-XKB):\n"); - ErrorF("event= 0x%04x\n",xE[0].u.keyButtonPointer.state); + ErrorF("event= 0x%04x\n",xE[i].u.keyButtonPointer.state); ErrorF("lookup= 0x%02x, grab= 0x%02x\n",s->lookup_mods, s->grab_mods); ErrorF("compat lookup= 0x%02x, grab= 0x%02x\n", @@ -900,9 +907,18 @@ XkbSrvInfoPtr xkbi; xE[i].u.keyButtonPointer.state= new; } else if ((type==EnterNotify)||(type==LeaveNotify)) { - xE->u.enterLeave.state&= 0x1F00; - xE->u.enterLeave.state|= xkbi->state.compat_grab_mods; - } + xE[i].u.enterLeave.state&= 0x1F00; + xE[i].u.enterLeave.state|= xkbi->state.compat_grab_mods; + } else if ((type>=DeviceKeyPress)&&(type<=DeviceMotionNotify)) { + CARD16 old, new; + deviceKeyButtonPointer *kbp = (deviceKeyButtonPointer*)&xE[i]; + old= kbp->state&(~0x1F00); + new= kbp->state&0x1F00; + if (old==XkbStateFieldFromRec(&xkbi->state)) + new|= xkbi->state.compat_lookup_mods; + else new|= xkbi->state.compat_grab_mods; + kbp->state= new; + } button_mask = 1 << xE[i].u.u.detail; if (type == ButtonPress && ((xE[i].u.keyButtonPointer.state >> 7) & button_mask) == button_mask && @@ -911,7 +927,14 @@ XkbSrvInfoPtr xkbi; ErrorF("Faking release of button %d\n", xE[i].u.u.detail); #endif XkbDDXFakePointerButton(ButtonRelease, xE[i].u.u.detail); - } + } else if (type == DeviceButtonPress && + ((((deviceKeyButtonPointer*)&xE[i])->state >> 7) & button_mask) == button_mask && + (xkbi->lockedPtrButtons & button_mask) == button_mask) { +#ifdef DEBUG + ErrorF("Faking release of button %d\n", ((deviceKeyButtonPointer*)&xE[i])->state); +#endif + XkbDDXFakePointerButton(DeviceButtonRelease, ((deviceKeyButtonPointer*)&xE[i])->state); + } } } return True; diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c index c0867adf0..6301a32e7 100644 --- a/xkb/xkbInit.c +++ b/xkb/xkbInit.c @@ -182,7 +182,7 @@ char * pval; ErrorF("Atom error: %s not created\n",_XKB_RF_NAMES_PROP_ATOM); return True; } - pval= (char*) ALLOCATE_LOCAL(len); + pval= (char*) xalloc(len); if (!pval) { ErrorF("Allocation error: %s proprerty not created\n", _XKB_RF_NAMES_PROP_ATOM); @@ -223,7 +223,7 @@ char * pval; } ChangeWindowProperty(WindowTable[0],name,XA_STRING,8,PropModeReplace, len,pval,True); - DEALLOCATE_LOCAL(pval); + xfree(pval); return True; } diff --git a/xkb/xkbPrKeyEv.c b/xkb/xkbPrKeyEv.c index 81124bcfb..3fec4f5ca 100644 --- a/xkb/xkbPrKeyEv.c +++ b/xkb/xkbPrKeyEv.c @@ -36,9 +36,10 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <X11/keysym.h> #include "misc.h" #include "inputstr.h" +#include "exevents.h" #include <xkbsrv.h> #include <ctype.h> - +#define EXTENSION_EVENT_BASE 64 /***====================================================================***/ @@ -50,9 +51,11 @@ XkbSrvInfoPtr xkbi; int key; XkbBehavior behavior; unsigned ndx; +int xiEvent; xkbi= keyc->xkbInfo; key= xE->u.u.detail; + xiEvent= (xE->u.u.type & EXTENSION_EVENT_BASE); #ifdef DEBUG if (xkbDebugFlags&0x8) { ErrorF("XkbPKE: Key %d %s\n",key,(xE->u.u.type==KeyPress?"down":"up")); @@ -69,45 +72,69 @@ unsigned ndx; /* below XKB, such as a key that physically locks. XKB does not */ /* do anything to implement the behavior, but it *does* report that */ /* key is hardwired */ + if ((behavior.type&XkbKB_Permanent)==0) { switch (behavior.type) { case XkbKB_Default: - if (( xE->u.u.type == KeyPress ) && + if (( xE->u.u.type == KeyPress || + xE->u.u.type == DeviceKeyPress) && (keyc->down[key>>3] & (1<<(key&7)))) { XkbLastRepeatEvent= (pointer)xE; - xE->u.u.type = KeyRelease; + + if (xiEvent) + xE->u.u.type = DeviceKeyRelease; + else + xE->u.u.type = KeyRelease; XkbHandleActions(keybd,keybd,xE,count); - xE->u.u.type = KeyPress; + + if (xiEvent) + xE->u.u.type = DeviceKeyPress; + else + xE->u.u.type = KeyPress; XkbHandleActions(keybd,keybd,xE,count); XkbLastRepeatEvent= NULL; return; } - else if ((xE->u.u.type==KeyRelease) && + else if ((xE->u.u.type==KeyRelease || + xE->u.u.type == DeviceKeyRelease) && (!(keyc->down[key>>3]&(1<<(key&7))))) { XkbLastRepeatEvent= (pointer)&xE; - xE->u.u.type = KeyPress; + if (xiEvent) + xE->u.u.type = DeviceKeyPress; + else + xE->u.u.type = KeyPress; XkbHandleActions(keybd,keybd,xE,count); - xE->u.u.type = KeyRelease; + if (xiEvent) + xE->u.u.type = DeviceKeyRelease; + else + xE->u.u.type = KeyRelease; XkbHandleActions(keybd,keybd,xE,count); XkbLastRepeatEvent= NULL; return; } break; case XkbKB_Lock: - if ( xE->u.u.type == KeyRelease ) + if ( xE->u.u.type == KeyRelease || + xE->u.u.type == DeviceKeyRelease) { return; + } else { int bit= 1<<(key&7); - if ( keyc->down[key>>3]&bit ) - xE->u.u.type= KeyRelease; - } + if ( keyc->down[key>>3]&bit ) { + if (xiEvent) + xE->u.u.type = DeviceKeyRelease; + else + xE->u.u.type= KeyRelease; + } + } break; case XkbKB_RadioGroup: ndx= (behavior.data&(~XkbKB_RGAllowNone)); if ( ndx<xkbi->nRadioGroups ) { XkbRadioGroupPtr rg; - if ( xE->u.u.type == KeyRelease ) + if ( xE->u.u.type == KeyRelease || + xE->u.u.type == DeviceKeyRelease) return; rg = &xkbi->radioGroups[ndx]; @@ -121,10 +148,16 @@ unsigned ndx; } if ( rg->currentDown!=0 ) { int key = xE->u.u.detail; - xE->u.u.type= KeyRelease; + if (xiEvent) + xE->u.u.type = DeviceKeyRelease; + else + xE->u.u.type= KeyRelease; xE->u.u.detail= rg->currentDown; XkbHandleActions(keybd,keybd,xE,count); - xE->u.u.type= KeyPress; + if (xiEvent) + xE->u.u.type = DeviceKeyPress; + else + xE->u.u.type= KeyPress; xE->u.u.detail= key; } rg->currentDown= key; @@ -160,23 +193,42 @@ unsigned ndx; void ProcessKeyboardEvent(xEvent *xE,DeviceIntPtr keybd,int count) { -KeyClassPtr keyc = keybd->key; -XkbSrvInfoPtr xkbi; - xkbi= keyc->xkbInfo; + KeyClassPtr keyc = keybd->key; + XkbSrvInfoPtr xkbi = NULL; + ProcessInputProc backup_proc; + xkbDeviceInfoPtr xkb_priv = XKBDEVICEINFO(keybd); + int is_press = (xE->u.u.type == KeyPress || xE->u.u.type == DeviceKeyPress); + int is_release = (xE->u.u.type == KeyRelease || + xE->u.u.type == DeviceKeyRelease); + + if (keyc) + xkbi = keyc->xkbInfo; + + /* We're only interested in key events. */ + if (!is_press && !is_release) { + UNWRAP_PROCESS_INPUT_PROC(keybd, xkb_priv, backup_proc); + keybd->public.processInputProc(xE, keybd, count); + COND_WRAP_PROCESS_INPUT_PROC(keybd, xkb_priv, backup_proc, + xkbUnwrapProc); + return; + } -#ifdef DEBUG - if (xkbDebugFlags&0x8) { - int key= xE->u.u.detail; - ErrorF("PKE: Key %d %s\n",key,(xE->u.u.type==KeyPress?"down":"up")); + /* If AccessX filters are active, then pass it through to + * AccessXFilter{Press,Release}Event; else, punt to + * XkbProcessKeyboardEvent. + * + * If AXF[PK]E don't intercept anything (which they probably won't), + * they'll punt through XPKE anyway. */ + if ((xkbi->desc->ctrls->enabled_ctrls & XkbAllFilteredEventsMask)) { + if (is_press) + AccessXFilterPressEvent(xE, keybd, count); + else if (is_release) + AccessXFilterReleaseEvent(xE, keybd, count); } -#endif - if ((xkbi->desc->ctrls->enabled_ctrls&XkbAllFilteredEventsMask)==0) - XkbProcessKeyboardEvent(xE,keybd,count); - else if (xE->u.u.type==KeyPress) - AccessXFilterPressEvent(xE,keybd,count); - else if (xE->u.u.type==KeyRelease) - AccessXFilterReleaseEvent(xE,keybd,count); + else { + XkbProcessKeyboardEvent(xE, keybd, count); + } + return; } - diff --git a/xorg-server.pc.in b/xorg-server.pc.in index c1cdb7d2a..53b4ed28c 100644 --- a/xorg-server.pc.in +++ b/xorg-server.pc.in @@ -5,6 +5,12 @@ includedir=@includedir@ moduledir=@moduledir@ sdkdir=@sdkdir@ +abi_ansic=@abi_ansic@ +abi_videodrv=@abi_videodrv@ +abi_xinput=@abi_xinput@ +abi_extension=@abi_extension@ +abi_font=@abi_font@ + Name: xorg-server Description: Modular X.Org X Server Version: @PACKAGE_VERSION@ |