Replace sort_tu_by_abbrev_offset with operator<

I noticed that sort_tu_by_abbrev_offset only has a single caller.  It
seemed simpler to replace it with an implementation of operator<
instead.

2021-05-17  Tom Tromey  <tom@tromey.com>

	* dwarf2/read.c (tu_abbrev_offset::operator<): New method.
	(sort_tu_by_abbrev_offset): Remove.
	(build_type_psymtabs): Update.
This commit is contained in:
Tom Tromey
2021-05-17 12:50:33 -06:00
parent 5277208d32
commit 16e0020bfc
2 changed files with 13 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2021-05-17 Tom Tromey <tom@tromey.com>
* dwarf2/read.c (tu_abbrev_offset::operator<): New method.
(sort_tu_by_abbrev_offset): Remove.
(build_type_psymtabs): Update.
2021-05-17 Simon Marchi <simon.marchi@polymtl.ca> 2021-05-17 Simon Marchi <simon.marchi@polymtl.ca>
* py-project.toml: New. * py-project.toml: New.

View File

@ -7351,19 +7351,16 @@ struct tu_abbrev_offset
: sig_type (sig_type_), abbrev_offset (abbrev_offset_) : sig_type (sig_type_), abbrev_offset (abbrev_offset_)
{} {}
/* This is used when sorting. */
bool operator< (const tu_abbrev_offset &other)
{
return abbrev_offset < other.abbrev_offset;
}
signatured_type *sig_type; signatured_type *sig_type;
sect_offset abbrev_offset; sect_offset abbrev_offset;
}; };
/* Helper routine for build_type_psymtabs, passed to std::sort. */
static bool
sort_tu_by_abbrev_offset (const struct tu_abbrev_offset &a,
const struct tu_abbrev_offset &b)
{
return a.abbrev_offset < b.abbrev_offset;
}
/* Efficiently read all the type units. /* Efficiently read all the type units.
The efficiency is because we sort TUs by the abbrev table they use and The efficiency is because we sort TUs by the abbrev table they use and
@ -7431,8 +7428,7 @@ build_type_psymtabs (dwarf2_per_objfile *per_objfile)
} }
} }
std::sort (sorted_by_abbrev.begin (), sorted_by_abbrev.end (), std::sort (sorted_by_abbrev.begin (), sorted_by_abbrev.end ());
sort_tu_by_abbrev_offset);
abbrev_offset = (sect_offset) ~(unsigned) 0; abbrev_offset = (sect_offset) ~(unsigned) 0;