Use obstack_strdup in ada-lang.c
authorTom Tromey <tromey@adacore.com>
Wed, 19 Feb 2020 18:06:33 +0000 (11:06 -0700)
committerTom Tromey <tromey@adacore.com>
Wed, 19 Feb 2020 18:17:35 +0000 (11:17 -0700)
I happened across a spot that was still using obstack_alloc and
strcpy, rather than obstack_strdup.  This patch makes the obvious fix.

gdb/ChangeLog
2020-02-19  Tom Tromey  <tromey@adacore.com>

* ada-lang.c (cache_symbol): Use obstack_strdup.

gdb/ChangeLog
gdb/ada-lang.c

index 4a2f81323a75297b4b567fe71f2469af59b41015..782531161702cf8c56067a4091448ddad64c41cc 100644 (file)
@@ -1,3 +1,7 @@
+2020-02-19  Tom Tromey  <tromey@adacore.com>
+
+       * ada-lang.c (cache_symbol): Use obstack_strdup.
+
 2020-02-19  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * configure: Regenerate.
index c5b5fdf169f5e6b49bb977bccf819e45f1541f29..316eaf50b9a197eb9c0921a8149b0cdf7c3974b3 100644 (file)
@@ -4710,7 +4710,6 @@ cache_symbol (const char *name, domain_enum domain, struct symbol *sym,
   struct ada_symbol_cache *sym_cache
     = ada_get_symbol_cache (current_program_space);
   int h;
-  char *copy;
   struct cache_entry *e;
 
   /* Symbols for builtin types don't have a block.
@@ -4733,9 +4732,7 @@ cache_symbol (const char *name, domain_enum domain, struct symbol *sym,
   e = XOBNEW (&sym_cache->cache_space, cache_entry);
   e->next = sym_cache->root[h];
   sym_cache->root[h] = e;
-  e->name = copy
-    = (char *) obstack_alloc (&sym_cache->cache_space, strlen (name) + 1);
-  strcpy (copy, name);
+  e->name = obstack_strdup (&sym_cache->cache_space, name);
   e->sym = sym;
   e->domain = domain;
   e->block = block;