From 599d1c366d6d81cb1ed93ce9f350c0d8ca428cde Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Mon, 24 Feb 2025 12:15:01 +0100 Subject: [PATCH] (1823) dix: 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 --- dix/atom.c | 2 +- dix/colormap.c | 22 +++++++++++----------- dix/devices.c | 4 ++-- dix/dispatch.c | 2 +- dix/dixfonts.c | 10 +++++----- dix/grabs.c | 8 ++++---- dix/property.c | 6 +++--- dix/resource.c | 4 ++-- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/dix/atom.c b/dix/atom.c index eb4c40bf9..04015bbb6 100644 --- a/dix/atom.c +++ b/dix/atom.c @@ -191,7 +191,7 @@ InitAtoms(void) { FreeAllAtoms(); tableLength = InitialTableSize; - nodeTable = xallocarray(InitialTableSize, sizeof(NodePtr)); + nodeTable = calloc(InitialTableSize, sizeof(NodePtr)); if (!nodeTable) FatalError("creating atom table"); nodeTable[None] = NULL; diff --git a/dix/colormap.c b/dix/colormap.c index af76cf6cc..b5d231ec9 100644 --- a/dix/colormap.c +++ b/dix/colormap.c @@ -307,7 +307,7 @@ dixCreateColormap(Colormap mid, ScreenPtr pScreen, VisualPtr pVisual, for (pent = &pmap->red[size - 1]; pent >= pmap->red; pent--) pent->refcnt = AllocPrivate; pmap->freeRed = 0; - ppix = xallocarray(size, sizeof(Pixel)); + ppix = calloc(size, sizeof(Pixel)); if (!ppix) { free(pmap); return BadAlloc; @@ -348,7 +348,7 @@ dixCreateColormap(Colormap mid, ScreenPtr pScreen, VisualPtr pVisual, for (pent = &pmap->green[size - 1]; pent >= pmap->green; pent--) pent->refcnt = AllocPrivate; pmap->freeGreen = 0; - ppix = xallocarray(size, sizeof(Pixel)); + ppix = calloc(size, sizeof(Pixel)); if (!ppix) { free(pmap->clientPixelsRed[clientIndex]); free(pmap); @@ -363,7 +363,7 @@ dixCreateColormap(Colormap mid, ScreenPtr pScreen, VisualPtr pVisual, for (pent = &pmap->blue[size - 1]; pent >= pmap->blue; pent--) pent->refcnt = AllocPrivate; pmap->freeBlue = 0; - ppix = xallocarray(size, sizeof(Pixel)); + ppix = calloc(size, sizeof(Pixel)); if (!ppix) { free(pmap->clientPixelsGreen[clientIndex]); free(pmap->clientPixelsRed[clientIndex]); @@ -713,7 +713,7 @@ doUpdateColors(ColormapPtr pmap) pVisual = pmap->pVisual; size = pVisual->ColormapEntries; - defs = xallocarray(size, sizeof(xColorItem)); + defs = calloc(size, sizeof(xColorItem)); if (!defs) return; n = 0; @@ -1659,9 +1659,9 @@ AllocDirect(int client, ColormapPtr pmap, int c, int r, int g, int b, for (p = pixels; p < pixels + c; p++) *p = 0; - ppixRed = xallocarray(npixR, sizeof(Pixel)); - ppixGreen = xallocarray(npixG, sizeof(Pixel)); - ppixBlue = xallocarray(npixB, sizeof(Pixel)); + ppixRed = calloc(npixR, sizeof(Pixel)); + ppixGreen = calloc(npixG, sizeof(Pixel)); + ppixBlue = calloc(npixB, sizeof(Pixel)); if (!ppixRed || !ppixGreen || !ppixBlue) { free(ppixBlue); free(ppixGreen); @@ -1759,7 +1759,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 = xallocarray(npix, sizeof(Pixel)))) + if (!(ppixTemp = calloc(npix, sizeof(Pixel)))) return BadAlloc; ok = AllocCP(pmap, pmap->red, c, r, contig, ppixTemp, pmask); @@ -1971,7 +1971,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 = xallocarray(npixShared, sizeof(SHAREDCOLOR *)); + psharedList = calloc(npixShared, sizeof(SHAREDCOLOR *)); if (!psharedList) return FALSE; ppshared = psharedList; @@ -2480,8 +2480,8 @@ IsMapInstalled(Colormap map, WindowPtr pWin) Colormap *pmaps; int imap, nummaps, found; - pmaps = xallocarray(pWin->drawable.pScreen->maxInstalledCmaps, - sizeof(Colormap)); + pmaps = calloc(pWin->drawable.pScreen->maxInstalledCmaps, + sizeof(Colormap)); if (!pmaps) return FALSE; nummaps = (*pWin->drawable.pScreen->ListInstalledColormaps) diff --git a/dix/devices.c b/dix/devices.c index 61a455d9c..29a4eba25 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -1550,8 +1550,8 @@ InitStringFeedbackClassDeviceStruct(DeviceIntPtr dev, feedc->ctrl.num_symbols_displayed = 0; feedc->ctrl.max_symbols = max_symbols; feedc->ctrl.symbols_supported = - xallocarray(num_symbols_supported, sizeof(KeySym)); - feedc->ctrl.symbols_displayed = xallocarray(max_symbols, sizeof(KeySym)); + calloc(num_symbols_supported, sizeof(KeySym)); + feedc->ctrl.symbols_displayed = calloc(max_symbols, sizeof(KeySym)); if (!feedc->ctrl.symbols_supported || !feedc->ctrl.symbols_displayed) { free(feedc->ctrl.symbols_supported); free(feedc->ctrl.symbols_displayed); diff --git a/dix/dispatch.c b/dix/dispatch.c index 3e04206ad..ee5ec09f8 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -1048,7 +1048,7 @@ ProcQueryTree(ClientPtr client) if (numChildren) { int curChild = 0; - childIDs = xallocarray(numChildren, sizeof(Window)); + childIDs = calloc(numChildren, sizeof(Window)); if (!childIDs) return BadAlloc; for (pChild = pWin->lastChild; pChild != pHead; diff --git a/dix/dixfonts.c b/dix/dixfonts.c index 4d9559615..61662b8d3 100644 --- a/dix/dixfonts.c +++ b/dix/dixfonts.c @@ -426,7 +426,7 @@ OpenFont(ClientPtr client, XID fid, Mask flags, unsigned lenfname, * copy the current FPE list, so that if it gets changed by another client * while we're blocking, the request still appears atomic */ - c->fpe_list = xallocarray(num_fpes, sizeof(FontPathElementPtr)); + c->fpe_list = calloc(num_fpes, sizeof(FontPathElementPtr)); if (!c->fpe_list) { free((void *) c->fontname); free(c); @@ -820,7 +820,7 @@ ListFonts(ClientPtr client, unsigned char *pattern, unsigned length, if (!(c = calloc(1, sizeof *c))) return BadAlloc; - c->fpe_list = xallocarray(num_fpes, sizeof(FontPathElementPtr)); + c->fpe_list = calloc(num_fpes, sizeof(FontPathElementPtr)); if (!c->fpe_list) { free(c); return BadAlloc; @@ -1070,7 +1070,7 @@ StartListFontsWithInfo(ClientPtr client, int length, unsigned char *pattern, if (!(c = calloc(1, sizeof *c))) goto badAlloc; - c->fpe_list = xallocarray(num_fpes, sizeof(FontPathElementPtr)); + c->fpe_list = calloc(num_fpes, sizeof(FontPathElementPtr)); if (!c->fpe_list) { free(c); goto badAlloc; @@ -1439,7 +1439,7 @@ doImageText(ClientPtr client, ITclosurePtr c) *new_closure = *c; c = new_closure; - data = xallocarray(c->nChars, itemSize); + data = calloc(c->nChars, itemSize); if (!data) { free(c); c = old_closure; @@ -1595,7 +1595,7 @@ SetFontPathElements(int npaths, unsigned char *paths, int *bad, Bool persist) unsigned char *cp = paths; FontPathElementPtr fpe = NULL, *fplist; - fplist = xallocarray(npaths, sizeof(FontPathElementPtr)); + fplist = calloc(npaths, sizeof(FontPathElementPtr)); if (!fplist) { *bad = 0; return BadAlloc; diff --git a/dix/grabs.c b/dix/grabs.c index 265cef880..8836c063e 100644 --- a/dix/grabs.c +++ b/dix/grabs.c @@ -601,10 +601,10 @@ DeletePassiveGrabFromList(GrabPtr pMinuendGrab) i++; if (!i) return TRUE; - deletes = xallocarray(i, sizeof(GrabPtr)); - adds = xallocarray(i, sizeof(GrabPtr)); - updates = xallocarray(i, sizeof(Mask **)); - details = xallocarray(i, sizeof(Mask *)); + deletes = calloc(i, sizeof(GrabPtr)); + adds = calloc(i, sizeof(GrabPtr)); + updates = calloc(i, sizeof(Mask **)); + details = calloc(i, sizeof(Mask *)); if (!deletes || !adds || !updates || !details) { free(details); free(updates); diff --git a/dix/property.c b/dix/property.c index 489216f57..6600cba14 100644 --- a/dix/property.c +++ b/dix/property.c @@ -151,8 +151,8 @@ ProcRotateProperties(ClientPtr client) return rc; atoms = (Atom *) &stuff[1]; - props = xallocarray(stuff->nAtoms, sizeof(PropertyPtr)); - saved = xallocarray(stuff->nAtoms, sizeof(PropertyRec)); + props = calloc(stuff->nAtoms, sizeof(PropertyPtr)); + saved = calloc(stuff->nAtoms, sizeof(PropertyRec)); if (!props || !saved) { rc = BadAlloc; goto out; @@ -590,7 +590,7 @@ ProcListProperties(ClientPtr client) numProps++; if (numProps) { - pAtoms = xallocarray(numProps, sizeof(Atom)); + pAtoms = calloc(numProps, sizeof(Atom)); if (!pAtoms) return BadAlloc; diff --git a/dix/resource.c b/dix/resource.c index dffe7a259..bbc9fe03f 100644 --- a/dix/resource.c +++ b/dix/resource.c @@ -861,10 +861,10 @@ RebuildTable(int client) */ j = 2 * clientTable[client].buckets; - tails = xallocarray(j, sizeof(ResourcePtr *)); + tails = calloc(j, sizeof(ResourcePtr *)); if (!tails) return; - resources = xallocarray(j, sizeof(ResourcePtr)); + resources = calloc(j, sizeof(ResourcePtr)); if (!resources) { free(tails); return;