mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-12-19 01:19:41 +08:00
Remove 'copy_names' parameter from add_using_directive
I noticed that add_using_directive's 'copy_names' parameter is only used by a single caller. This patch removes the parameter and changes that caller to copy the names itself. I chose to use intern here since I suspect the names may well be repeated in a given objfile. Approved-By: John Baldwin <jhb@FreeBSD.org>
This commit is contained in:
@@ -100,8 +100,9 @@ cp_scan_for_anonymous_namespaces (struct buildsym_compunit *compunit,
|
||||
to 0, this way it is always considered valid. */
|
||||
std::vector<const char *> excludes;
|
||||
add_using_directive (compunit->get_local_using_directives (),
|
||||
dest, src, NULL, NULL, excludes, 0,
|
||||
1, &objfile->objfile_obstack);
|
||||
objfile->intern (dest), objfile->intern (src),
|
||||
nullptr, nullptr, excludes, 0,
|
||||
&objfile->objfile_obstack);
|
||||
}
|
||||
/* The "+ 2" is for the "::". */
|
||||
previous_component = next_component + 2;
|
||||
|
||||
@@ -7248,7 +7248,6 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
|
||||
imported_declaration,
|
||||
excludes,
|
||||
read_decl_line (die, cu),
|
||||
0,
|
||||
&objfile->objfile_obstack);
|
||||
}
|
||||
|
||||
@@ -14071,7 +14070,7 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu)
|
||||
previous_prefix, type->name (), NULL,
|
||||
NULL, excludes,
|
||||
read_decl_line (die, cu),
|
||||
0, &objfile->objfile_obstack);
|
||||
&objfile->objfile_obstack);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,12 +27,11 @@
|
||||
into the scope DEST. ALIAS is the name of the imported namespace
|
||||
in the current scope. If ALIAS is NULL then the namespace is known
|
||||
by its original name. DECLARATION is the name if the imported
|
||||
variable if this is a declaration import (Eg. using A::x), otherwise
|
||||
it is NULL. EXCLUDES is a list of names not to import from an
|
||||
imported module or NULL. If COPY_NAMES is non-zero, then the
|
||||
arguments are copied into newly allocated memory so they can be
|
||||
temporaries. For EXCLUDES the contents of the vector are copied,
|
||||
but the pointed to characters are not copied. */
|
||||
variable if this is a declaration import (Eg. using A::x),
|
||||
otherwise it is NULL. EXCLUDES is a list of names not to import
|
||||
from an imported module or NULL. For EXCLUDES the contents of the
|
||||
vector are copied, but the pointed to characters are not
|
||||
copied. */
|
||||
|
||||
void
|
||||
add_using_directive (struct using_direct **using_directives,
|
||||
@@ -42,7 +41,6 @@ add_using_directive (struct using_direct **using_directives,
|
||||
const char *declaration,
|
||||
const std::vector<const char *> &excludes,
|
||||
unsigned int decl_line,
|
||||
int copy_names,
|
||||
struct obstack *obstack)
|
||||
{
|
||||
struct using_direct *current;
|
||||
@@ -90,26 +88,10 @@ add_using_directive (struct using_direct **using_directives,
|
||||
newobj = (struct using_direct *) obstack_alloc (obstack, alloc_len);
|
||||
memset (newobj, 0, sizeof (*newobj));
|
||||
|
||||
if (copy_names)
|
||||
{
|
||||
newobj->import_src = obstack_strdup (obstack, src);
|
||||
newobj->import_dest = obstack_strdup (obstack, dest);
|
||||
}
|
||||
else
|
||||
{
|
||||
newobj->import_src = src;
|
||||
newobj->import_dest = dest;
|
||||
}
|
||||
|
||||
if (alias != NULL && copy_names)
|
||||
newobj->alias = obstack_strdup (obstack, alias);
|
||||
else
|
||||
newobj->alias = alias;
|
||||
|
||||
if (declaration != NULL && copy_names)
|
||||
newobj->declaration = obstack_strdup (obstack, declaration);
|
||||
else
|
||||
newobj->declaration = declaration;
|
||||
newobj->import_src = src;
|
||||
newobj->import_dest = dest;
|
||||
newobj->alias = alias;
|
||||
newobj->declaration = declaration;
|
||||
|
||||
if (!excludes.empty ())
|
||||
memcpy (newobj->excludes, excludes.data (),
|
||||
|
||||
@@ -125,7 +125,6 @@ extern void add_using_directive (struct using_direct **using_directives,
|
||||
const char *declaration,
|
||||
const std::vector<const char *> &excludes,
|
||||
const unsigned int decl_line,
|
||||
int copy_names,
|
||||
struct obstack *obstack);
|
||||
|
||||
#endif /* NAMESPACE_H */
|
||||
|
||||
Reference in New Issue
Block a user