From: Jan Beulich Date: Fri, 20 Jan 2023 09:16:56 +0000 (+0100) Subject: x86: absorb allocation in i386-gen X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=992dd393c9430ac77df30017f47dc607da69e9a0;p=binutils-gdb.git x86: absorb allocation in i386-gen When generating the mnemonic string table we already set up an identifier for the following entry in a number of cases. Re-use that on the next loop iteration rather than re-doing allocation and conversion. --- diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c index e3a50127ca3..112e48ebcf0 100644 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -1750,13 +1750,15 @@ process_i386_opcodes (FILE *table) fprintf (table, "const char i386_mnemonics[] =\n"); fprintf (fp, "\nextern const char i386_mnemonics[];\n\n"); + str = NULL; for (l = strlen (opcode_array[offs = j = 0]->name); j < i; j++) { const char *next = NULL; size_t l1 = j + 1 < i ? strlen(next = opcode_array[j + 1]->name) : 0; name = opcode_array[j]->name; - str = mkident (name); + if (str == NULL) + str = mkident (name); if (l < l1 && !strcmp(name, next + l1 - l)) { fprintf (fp, "#define MN_%s ", str); @@ -1769,8 +1771,9 @@ process_i386_opcodes (FILE *table) fprintf (table, " \"\\0\"\"%s\"\n", name); fprintf (fp, "#define MN_%s %#x\n", str, offs + 1); offs += strlen (name) + 1; + free (str); + str = NULL; } - free (str); l = l1; }