Xext: Remove usage of alloca
Replace with heap allocations.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user