mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-29 02:20:51 +00:00
* merge.cc (Output_merge_string::do_add_input_section): Count strings
to reserve space in merged_strings vector. Keep total input size for stats. (Output_merge_string::do_print_merge_stats): Print total input size. * merge.h (Output_merge_string): Add input_size_ field. * stringpool.cc (Stringpool_template::string_length): Move implementations out of Stringpool_template class and place in stringpool.h. * stringpool.h (string_length): Move out of Stringpool_template.
This commit is contained in:
@@ -32,6 +32,28 @@ namespace gold
|
||||
|
||||
class Output_file;
|
||||
|
||||
// Return the length of a string in units of Char_type.
|
||||
|
||||
template<typename Char_type>
|
||||
inline size_t
|
||||
string_length(const Char_type* p)
|
||||
{
|
||||
size_t len = 0;
|
||||
for (; *p != 0; ++p)
|
||||
++len;
|
||||
return len;
|
||||
}
|
||||
|
||||
// Specialize string_length for char. Maybe we could just use
|
||||
// std::char_traits<>::length?
|
||||
|
||||
template<>
|
||||
inline size_t
|
||||
string_length(const char* p)
|
||||
{
|
||||
return strlen(p);
|
||||
}
|
||||
|
||||
// A Stringpool is a pool of unique strings. It provides the
|
||||
// following features:
|
||||
|
||||
@@ -266,10 +288,6 @@ class Stringpool_template
|
||||
Stringpool_template(const Stringpool_template&);
|
||||
Stringpool_template& operator=(const Stringpool_template&);
|
||||
|
||||
// Return the length of a string in units of Stringpool_char.
|
||||
static size_t
|
||||
string_length(const Stringpool_char*);
|
||||
|
||||
// Return whether two strings are equal.
|
||||
static bool
|
||||
string_equal(const Stringpool_char*, const Stringpool_char*);
|
||||
|
||||
Reference in New Issue
Block a user