aboutsummaryrefslogtreecommitdiff
path: root/gold/stringpool.h
diff options
context:
space:
mode:
Diffstat (limited to 'gold/stringpool.h')
-rw-r--r--gold/stringpool.h26
1 files changed, 22 insertions, 4 deletions
diff --git a/gold/stringpool.h b/gold/stringpool.h
index f353c9d..2f9a313 100644
--- a/gold/stringpool.h
+++ b/gold/stringpool.h
@@ -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*);