From: Matthew Fernandez Date: Fri, 23 Dec 2022 21:33:15 +0000 (-0800) Subject: gv2gxl: remove unnecessary dynamic allocation of state X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=16c7e943a927f0f65673e5ebed172f2069a20e7f;p=graphviz gv2gxl: remove unnecessary dynamic allocation of state --- diff --git a/cmd/tools/gv2gxl.c b/cmd/tools/gv2gxl.c index 5f237ee65..53dd32173 100644 --- a/cmd/tools/gv2gxl.c +++ b/cmd/tools/gv2gxl.c @@ -834,43 +834,40 @@ static void iterateBody(gxlstate_t * stp, Agraph_t * g) } } -static gxlstate_t *initState(Agraph_t * g) -{ - gxlstate_t *stp = gv_alloc(sizeof(*stp)); - stp->nodeMap = dtopen(&nameDisc, Dtoset); - stp->graphMap = dtopen(&nameDisc, Dtoset); - stp->synNodeMap = dtopen(&nameDisc, Dtoset); - stp->idList = dtopen(&idDisc, Dtoset); - stp->attrsNotWritten = 0; - stp->root = g; - stp->directed = agisdirected(g) != 0; - return stp; +static gxlstate_t initState(Agraph_t *g) { + gxlstate_t stp = {0}; + stp.nodeMap = dtopen(&nameDisc, Dtoset); + stp.graphMap = dtopen(&nameDisc, Dtoset); + stp.synNodeMap = dtopen(&nameDisc, Dtoset); + stp.idList = dtopen(&idDisc, Dtoset); + stp.attrsNotWritten = 0; + stp.root = g; + stp.directed = agisdirected(g) != 0; + return stp; } -static void freeState(gxlstate_t * stp) -{ - dtclose(stp->nodeMap); - dtclose(stp->graphMap); - dtclose(stp->synNodeMap); - dtclose(stp->idList); - free(stp); +static void freeState(gxlstate_t stp) { + dtclose(stp.nodeMap); + dtclose(stp.graphMap); + dtclose(stp.synNodeMap); + dtclose(stp.idList); } void gv_to_gxl(Agraph_t * g, FILE * gxlFile) { - gxlstate_t *stp = initState(g); + gxlstate_t stp = initState(g); aginit(g, AGNODE, "node", sizeof(Local_Agnodeinfo_t), TRUE); - iterateHdr(stp, g); - iterateBody(stp, g); + iterateHdr(&stp, g); + iterateBody(&stp, g); Level = 0; fprintf(gxlFile, "\n"); fprintf(gxlFile, "\n"); - writeHdr(stp, g, gxlFile, TRUE); - writeBody(stp, g, gxlFile); + writeHdr(&stp, g, gxlFile, TRUE); + writeBody(&stp, g, gxlFile); writeTrl(g, gxlFile, TRUE); fprintf(gxlFile, "\n");