Browse Source

(build_hash_table): Fix memory leak.

(print_insn_sparc, print_insn_sparc64): Clean up comments regarding
switching between sparc32 and sparc64.
gdb-4_18-branch
David Edelsohn 32 years ago
parent
commit
28661653c7
  1. 17
      opcodes/sparc-dis.c

17
opcodes/sparc-dis.c

@ -761,14 +761,15 @@ build_hash_table (table, hash_table, num_opcodes)
{ {
register int i; register int i;
int hash_count[HASH_SIZE]; int hash_count[HASH_SIZE];
struct opcode_hash *hash_buf; static struct opcode_hash *hash_buf = NULL;
/* Start at the end of the table and work backwards so that each /* Start at the end of the table and work backwards so that each
chain is sorted. */ chain is sorted. */
/* ??? Do we really need to sort them now? */
memset (hash_table, 0, HASH_SIZE * sizeof (hash_table[0])); memset (hash_table, 0, HASH_SIZE * sizeof (hash_table[0]));
memset (hash_count, 0, HASH_SIZE * sizeof (hash_count[0])); memset (hash_count, 0, HASH_SIZE * sizeof (hash_count[0]));
if (hash_buf != NULL)
free (hash_buf);
hash_buf = (struct opcode_hash *) xmalloc (sizeof (struct opcode_hash) * num_opcodes); hash_buf = (struct opcode_hash *) xmalloc (sizeof (struct opcode_hash) * num_opcodes);
for (i = num_opcodes - 1; i >= 0; --i) for (i = num_opcodes - 1; i >= 0; --i)
{ {
@ -805,9 +806,9 @@ print_insn_sparc (memaddr, info)
bfd_vma memaddr; bfd_vma memaddr;
disassemble_info *info; disassemble_info *info;
{ {
/* It's not clear that we'll ever switch cpus in a running program. /* It could happen that we'll switch cpus in a running program.
It could theoretically happen in gdb so we handle it. Consider objdump or gdb. The frequency of occurrence is expected
??? There is currently a memory leak but it's not worth the trouble. */ to be low enough that our clumsy approach is not a problem. */
if (sparc64_p) if (sparc64_p)
opcodes_initialized = 0; opcodes_initialized = 0;
sparc64_p = 0; sparc64_p = 0;
@ -819,9 +820,9 @@ print_insn_sparc64 (memaddr, info)
bfd_vma memaddr; bfd_vma memaddr;
disassemble_info *info; disassemble_info *info;
{ {
/* It's not clear that we'll ever switch cpus in a running program. /* It could happen that we'll switch cpus in a running program.
It could theoretically happen in gdb so we handle it. Consider objdump or gdb. The frequency of occurrence is expected
??? There is currently a memory leak but it's not worth the trouble. */ to be low enough that our clumsy approach is not a problem. */
if (!sparc64_p) if (!sparc64_p)
opcodes_initialized = 0; opcodes_initialized = 0;
sparc64_p = 1; sparc64_p = 1;

Loading…
Cancel
Save