mi: replace xallocarray() by calloc()

Only key difference that calloc(), in contrast to rellocarray(),
is zero-initializing. The overhead is hard to measure on today's
machines, and it's safer programming practise to always allocate
zero-initialized, so one can't forget to do it explicitly.

Cocci rule:

    @@
    expression COUNT;
    expression LEN;
    @@
    - xallocarray(COUNT,LEN)
    + calloc(COUNT,LEN)

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2025-02-24 12:15:01 +01:00
parent 7752d8450d
commit bdcf8d200f
11 changed files with 30 additions and 30 deletions

View File

@ -1191,9 +1191,9 @@ miFillSppPoly(DrawablePtr dst, GCPtr pgc, int count, /* number of points */
y = ymax - ymin + 1; y = ymax - ymin + 1;
if ((count < 3) || (y <= 0)) if ((count < 3) || (y <= 0))
return; return;
ptsOut = FirstPoint = xallocarray(y, sizeof(DDXPointRec)); ptsOut = FirstPoint = calloc(y, sizeof(DDXPointRec));
width = FirstWidth = xallocarray(y, sizeof(int)); width = FirstWidth = calloc(y, sizeof(int));
Marked = xallocarray(count, sizeof(int)); Marked = calloc(count, sizeof(int));
if (!ptsOut || !width || !Marked) { if (!ptsOut || !width || !Marked) {
free(Marked); free(Marked);
@ -1893,10 +1893,10 @@ miComputeArcs(xArc * parcs, int narcs, GCPtr pGC)
isDoubleDash = (pGC->lineStyle == LineDoubleDash); isDoubleDash = (pGC->lineStyle == LineDoubleDash);
dashOffset = pGC->dashOffset; dashOffset = pGC->dashOffset;
data = xallocarray(narcs, sizeof(struct arcData)); data = calloc(narcs, sizeof(struct arcData));
if (!data) if (!data)
return NULL; return NULL;
arcs = xallocarray(isDoubleDash ? 2 : 1, sizeof(*arcs)); arcs = calloc(isDoubleDash ? 2 : 1, sizeof(*arcs));
if (!arcs) { if (!arcs) {
free(data); free(data);
return NULL; return NULL;
@ -3083,8 +3083,8 @@ fillSpans(DrawablePtr pDrawable, GCPtr pGC)
if (nspans == 0) if (nspans == 0)
return; return;
xSpan = xSpans = xallocarray(nspans, sizeof(DDXPointRec)); xSpan = xSpans = calloc(nspans, sizeof(DDXPointRec));
xWidth = xWidths = xallocarray(nspans, sizeof(int)); xWidth = xWidths = calloc(nspans, sizeof(int));
if (xSpans && xWidths) { if (xSpans && xWidths) {
i = 0; i = 0;
f = finalSpans; f = finalSpans;
@ -3138,7 +3138,7 @@ realFindSpan(int y)
else else
change = SPAN_REALLOC; change = SPAN_REALLOC;
newSize = finalSize + change; newSize = finalSize + change;
newSpans = xallocarray(newSize, sizeof(struct finalSpan *)); newSpans = calloc(newSize, sizeof(struct finalSpan *));
if (!newSpans) if (!newSpans)
return NULL; return NULL;
newMiny = finalMiny; newMiny = finalMiny;

View File

@ -467,9 +467,9 @@ miInitVisuals(VisualPtr * visualp, DepthPtr * depthp, int *nvisualp,
ndepth++; ndepth++;
nvisual += visuals->count; nvisual += visuals->count;
} }
depth = xallocarray(ndepth, sizeof(DepthRec)); depth = calloc(ndepth, sizeof(DepthRec));
visual = xallocarray(nvisual, sizeof(VisualRec)); visual = calloc(nvisual, sizeof(VisualRec));
preferredCVCs = xallocarray(ndepth, sizeof(int)); preferredCVCs = calloc(ndepth, sizeof(int));
if (!depth || !visual || !preferredCVCs) { if (!depth || !visual || !preferredCVCs) {
free(depth); free(depth);
free(visual); free(visual);
@ -490,7 +490,7 @@ miInitVisuals(VisualPtr * visualp, DepthPtr * depthp, int *nvisualp,
prefp++; prefp++;
vid = NULL; vid = NULL;
if (nvtype) { if (nvtype) {
vid = xallocarray(nvtype, sizeof(VisualID)); vid = calloc(nvtype, sizeof(VisualID));
if (!vid) { if (!vid) {
free(depth); free(depth);
free(visual); free(visual);

View File

@ -60,7 +60,7 @@ miCopyRegion(DrawablePtr pSrcDrawable,
if (nbox > 1) { if (nbox > 1) {
/* keep ordering in each band, reverse order of bands */ /* keep ordering in each band, reverse order of bands */
pboxNew1 = xallocarray(nbox, sizeof(BoxRec)); pboxNew1 = calloc(nbox, sizeof(BoxRec));
if (!pboxNew1) if (!pboxNew1)
return; return;
pboxBase = pboxNext = pbox + nbox - 1; pboxBase = pboxNext = pbox + nbox - 1;
@ -91,7 +91,7 @@ miCopyRegion(DrawablePtr pSrcDrawable,
if (nbox > 1) { if (nbox > 1) {
/* reverse order of rects in each band */ /* reverse order of rects in each band */
pboxNew2 = xallocarray(nbox, sizeof(BoxRec)); pboxNew2 = calloc(nbox, sizeof(BoxRec));
if (!pboxNew2) { if (!pboxNew2) {
free(pboxNew1); free(pboxNew1);
return; return;

View File

@ -519,7 +519,7 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
regionnumrects = RegionNumRects(prgn); regionnumrects = RegionNumRects(prgn);
if (regionnumrects == 0) if (regionnumrects == 0)
return; return;
prect = xallocarray(regionnumrects, sizeof(xRectangle)); prect = calloc(regionnumrects, sizeof(xRectangle));
if (!prect) if (!prect)
return; return;

View File

@ -130,7 +130,7 @@ miPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x, int y, unsigned int ngly
gcvals); gcvals);
nbyLine = BitmapBytePad(width); nbyLine = BitmapBytePad(width);
pbits = xallocarray(height, nbyLine); pbits = calloc(height, nbyLine);
if (!pbits) { if (!pbits) {
dixDestroyPixmap(pPixmap, 0); dixDestroyPixmap(pPixmap, 0);
FreeScratchGC(pGCtmp); FreeScratchGC(pGCtmp);

View File

@ -410,8 +410,8 @@ miFillConvexPoly(DrawablePtr dst, GCPtr pgc, int count, DDXPointPtr ptsIn)
dy = ymax - ymin + 1; dy = ymax - ymin + 1;
if ((count < 3) || (dy < 0)) if ((count < 3) || (dy < 0))
return TRUE; return TRUE;
ptsOut = FirstPoint = xallocarray(dy, sizeof(DDXPointRec)); ptsOut = FirstPoint = calloc(dy, sizeof(DDXPointRec));
width = FirstWidth = xallocarray(dy, sizeof(int)); width = FirstWidth = calloc(dy, sizeof(int));
if (!FirstPoint || !FirstWidth) { if (!FirstPoint || !FirstWidth) {
free(FirstWidth); free(FirstWidth);
free(FirstPoint); free(FirstPoint);

View File

@ -65,7 +65,7 @@ miPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode, /* Origin or Previous */
int i; int i;
xPoint *ppt; xPoint *ppt;
if (!(pwidthInit = xallocarray(npt, sizeof(int)))) if (!(pwidthInit = calloc(npt, sizeof(int))))
return; return;
/* make pointlist origin relative */ /* make pointlist origin relative */

View File

@ -86,7 +86,7 @@ miPolyRectangle(DrawablePtr pDraw, GCPtr pGC, int nrects, xRectangle *pRects)
offset2 = pGC->lineWidth; offset2 = pGC->lineWidth;
offset1 = offset2 >> 1; offset1 = offset2 >> 1;
offset3 = offset2 - offset1; offset3 = offset2 - offset1;
tmp = xallocarray(ntmp, sizeof(xRectangle)); tmp = calloc(ntmp, sizeof(xRectangle));
if (!tmp) if (!tmp)
return; return;
t = tmp; t = tmp;

View File

@ -443,8 +443,8 @@ miFillUniqueSpanGroup(DrawablePtr pDraw, GCPtr pGC, SpanGroup * spanGroup)
ylength = spanGroup->ymax - ymin + 1; ylength = spanGroup->ymax - ymin + 1;
/* Allocate Spans for y buckets */ /* Allocate Spans for y buckets */
yspans = xallocarray(ylength, sizeof(Spans)); yspans = calloc(ylength, sizeof(Spans));
ysizes = xallocarray(ylength, sizeof(int)); ysizes = calloc(ylength, sizeof(int));
if (!yspans || !ysizes) { if (!yspans || !ysizes) {
free(yspans); free(yspans);
@ -511,8 +511,8 @@ miFillUniqueSpanGroup(DrawablePtr pDraw, GCPtr pGC, SpanGroup * spanGroup)
} /* for i thorough Spans */ } /* for i thorough Spans */
/* Now sort by x and uniquify each bucket into the final array */ /* Now sort by x and uniquify each bucket into the final array */
points = xallocarray(count, sizeof(DDXPointRec)); points = calloc(count, sizeof(DDXPointRec));
widths = xallocarray(count, sizeof(int)); widths = calloc(count, sizeof(int));
if (!points || !widths) { if (!points || !widths) {
for (i = 0; i < ylength; i++) { for (i = 0; i < ylength; i++) {
free(yspans[i].points); free(yspans[i].points);
@ -559,10 +559,10 @@ miFillUniqueSpanGroup(DrawablePtr pDraw, GCPtr pGC, SpanGroup * spanGroup)
static Bool static Bool
InitSpans(Spans * spans, size_t nspans) InitSpans(Spans * spans, size_t nspans)
{ {
spans->points = xallocarray(nspans, sizeof(*spans->points)); spans->points = calloc(nspans, sizeof(*spans->points));
if (!spans->points) if (!spans->points)
return FALSE; return FALSE;
spans->widths = xallocarray(nspans, sizeof(*spans->widths)); spans->widths = calloc(nspans, sizeof(*spans->widths));
if (!spans->widths) { if (!spans->widths) {
free(spans->points); free(spans->points);
return FALSE; return FALSE;

View File

@ -671,7 +671,7 @@ miZeroPolyArc(DrawablePtr pDraw, GCPtr pGC, int narcs, xArc * parcs)
numPts = maxPts << 2; numPts = maxPts << 2;
dospans = (pGC->fillStyle != FillSolid); dospans = (pGC->fillStyle != FillSolid);
if (dospans) { if (dospans) {
widths = xallocarray(numPts, sizeof(int)); widths = calloc(numPts, sizeof(int));
if (!widths) if (!widths)
return; return;
maxw = 0; maxw = 0;
@ -687,7 +687,7 @@ miZeroPolyArc(DrawablePtr pDraw, GCPtr pGC, int narcs, xArc * parcs)
(unsigned char *) pGC->dash, (int) pGC->numInDashList, (unsigned char *) pGC->dash, (int) pGC->numInDashList,
&dinfo.dashOffsetInit); &dinfo.dashOffsetInit);
} }
points = xallocarray(numPts, sizeof(DDXPointRec)); points = calloc(numPts, sizeof(DDXPointRec));
if (!points) { if (!points) {
if (dospans) { if (dospans) {
free(widths); free(widths);

View File

@ -148,8 +148,8 @@ miZeroLine(DrawablePtr pDraw, GCPtr pGC, int mode, /* Origin or Previous */
width = xright - xleft + 1; width = xright - xleft + 1;
height = ybottom - ytop + 1; height = ybottom - ytop + 1;
list_len = (height >= width) ? height : width; list_len = (height >= width) ? height : width;
pspanInit = xallocarray(list_len, sizeof(DDXPointRec)); pspanInit = calloc(list_len, sizeof(DDXPointRec));
pwidthInit = xallocarray(list_len, sizeof(int)); pwidthInit = calloc(list_len, sizeof(int));
if (!pspanInit || !pwidthInit) { if (!pspanInit || !pwidthInit) {
free(pspanInit); free(pspanInit);
free(pwidthInit); free(pwidthInit);