DIX: Remove usage of alloca
Replace with heap allocations.
This commit is contained in:
parent
3b77689266
commit
914922fd61
|
@ -751,7 +751,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;
|
||||
|
@ -801,7 +801,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)
|
||||
|
@ -1752,14 +1752,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);
|
||||
}
|
||||
|
||||
|
@ -1797,9 +1797,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);
|
||||
}
|
||||
|
||||
|
@ -1841,9 +1841,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);
|
||||
}
|
||||
|
@ -1859,7 +1859,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);
|
||||
|
||||
|
@ -1889,7 +1889,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);
|
||||
}
|
||||
|
||||
|
@ -2089,7 +2089,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;
|
||||
|
@ -2204,7 +2204,7 @@ AllocShared (ColormapPtr pmap, Pixel *ppix, int c, int r, int g, int b,
|
|||
}
|
||||
}
|
||||
}
|
||||
DEALLOCATE_LOCAL(psharedList);
|
||||
xfree(psharedList);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -2679,7 +2679,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);
|
||||
|
@ -2694,6 +2694,6 @@ IsMapInstalled(Colormap map, WindowPtr pWin)
|
|||
break;
|
||||
}
|
||||
}
|
||||
DEALLOCATE_LOCAL(pmaps);
|
||||
xfree(pmaps);
|
||||
return (found);
|
||||
}
|
||||
|
|
|
@ -1997,7 +1997,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;
|
||||
|
@ -2031,7 +2031,7 @@ ProcGetMotionEvents(ClientPtr client)
|
|||
(char *)coords);
|
||||
}
|
||||
if (coords)
|
||||
DEALLOCATE_LOCAL(coords);
|
||||
xfree(coords);
|
||||
return Success;
|
||||
}
|
||||
|
||||
|
|
|
@ -777,7 +777,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);
|
||||
|
@ -802,7 +802,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)
|
||||
|
@ -1797,7 +1797,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;
|
||||
|
@ -1818,7 +1818,7 @@ SetDefaultFontPath(char *path)
|
|||
|
||||
err = SetFontPathElements(num, newpath, &bad, TRUE);
|
||||
|
||||
DEALLOCATE_LOCAL(newpath);
|
||||
xfree(newpath);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
|
|
@ -364,7 +364,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++)
|
||||
|
@ -388,7 +388,7 @@ ProcListExtensions(ClientPtr client)
|
|||
if (reply.length)
|
||||
{
|
||||
WriteToClient(client, total_length, buffer);
|
||||
DEALLOCATE_LOCAL(buffer);
|
||||
xfree(buffer);
|
||||
}
|
||||
return(client->noClientException);
|
||||
}
|
||||
|
|
24
dix/grabs.c
24
dix/grabs.c
|
@ -369,16 +369,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;
|
||||
|
@ -473,10 +473,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
|
||||
|
|
|
@ -122,7 +122,7 @@ 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++)
|
||||
|
@ -131,19 +131,19 @@ ProcRotateProperties(ClientPtr client)
|
|||
DixReadAccess|DixWriteAccess);
|
||||
|
||||
if (!ValidAtom(atoms[i]) || (XaceErrorOperation == action)) {
|
||||
DEALLOCATE_LOCAL(props);
|
||||
xfree(props);
|
||||
client->errorValue = atoms[i];
|
||||
return BadAtom;
|
||||
}
|
||||
if (XaceIgnoreOperation == action) {
|
||||
DEALLOCATE_LOCAL(props);
|
||||
xfree(props);
|
||||
return Success;
|
||||
}
|
||||
|
||||
for (j = i + 1; j < stuff->nAtoms; j++)
|
||||
if (atoms[j] == atoms[i])
|
||||
{
|
||||
DEALLOCATE_LOCAL(props);
|
||||
xfree(props);
|
||||
return BadMatch;
|
||||
}
|
||||
pProp = wUserProps (pWin);
|
||||
|
@ -153,7 +153,7 @@ ProcRotateProperties(ClientPtr client)
|
|||
goto found;
|
||||
pProp = pProp->next;
|
||||
}
|
||||
DEALLOCATE_LOCAL(props);
|
||||
xfree(props);
|
||||
return BadMatch;
|
||||
found:
|
||||
props[i] = pProp;
|
||||
|
@ -175,7 +175,7 @@ found:
|
|||
props[i]->propertyName = atoms[(i + delta) % stuff->nAtoms];
|
||||
}
|
||||
}
|
||||
DEALLOCATE_LOCAL(props);
|
||||
xfree(props);
|
||||
return Success;
|
||||
}
|
||||
|
||||
|
@ -575,7 +575,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;
|
||||
|
@ -594,7 +594,7 @@ ProcListProperties(ClientPtr client)
|
|||
{
|
||||
client->pSwapReplyFunc = (ReplySwapPtr)Swap32Write;
|
||||
WriteSwappedDataToClient(client, numProps * sizeof(Atom), pAtoms);
|
||||
DEALLOCATE_LOCAL(pAtoms);
|
||||
xfree(pAtoms);
|
||||
}
|
||||
return(client->noClientException);
|
||||
}
|
||||
|
|
|
@ -507,13 +507,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++)
|
||||
|
@ -536,7 +536,7 @@ RebuildTable(int client)
|
|||
*tptr = &res->next;
|
||||
}
|
||||
}
|
||||
DEALLOCATE_LOCAL(tails);
|
||||
xfree(tails);
|
||||
clientTable[client].buckets *= 2;
|
||||
xfree(clientTable[client].resources);
|
||||
clientTable[client].resources = resources;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user