From 1a67b3b682d0fd7ad79c039e441d7ba415419c23 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Wed, 2 Aug 1995 16:48:02 +0000 Subject: [PATCH] (build_hash_table): Allocate all entries at once. --- opcodes/sparc-dis.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/opcodes/sparc-dis.c b/opcodes/sparc-dis.c index 532fb94..1dc2e35 100644 --- a/opcodes/sparc-dis.c +++ b/opcodes/sparc-dis.c @@ -759,8 +759,9 @@ build_hash_table (table, hash_table, num_opcodes) struct opcode_hash **hash_table; int num_opcodes; { - int i; + register int i; int hash_count[HASH_SIZE]; + struct opcode_hash *hash_buf; /* Start at the end of the table and work backwards so that each chain is sorted. */ @@ -768,10 +769,11 @@ build_hash_table (table, hash_table, num_opcodes) memset (hash_table, 0, HASH_SIZE * sizeof (hash_table[0])); memset (hash_count, 0, HASH_SIZE * sizeof (hash_count[0])); + hash_buf = (struct opcode_hash *) xmalloc (sizeof (struct opcode_hash) * num_opcodes); for (i = num_opcodes - 1; i >= 0; --i) { - int hash = HASH_INSN (sparc_opcodes[i].match); - struct opcode_hash *h = (struct opcode_hash *) xmalloc (sizeof (struct opcode_hash)); + register int hash = HASH_INSN (sparc_opcodes[i].match); + register struct opcode_hash *h = &hash_buf[i]; h->next = hash_table[hash]; h->opcode = &sparc_opcodes[i]; hash_table[hash] = h; -- 2.7.4