]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Add hash functions for string and string_view
authorThomas Otto <thomas.otto@pdv-fs.de>
Wed, 30 Oct 2019 09:09:14 +0000 (10:09 +0100)
committerThomas Otto <thomas.otto@pdv-fs.de>
Mon, 25 Nov 2019 19:51:04 +0000 (20:51 +0100)
src/hash.cpp
src/hash.hpp

index 83dc47031b0503f635824c6b69b460e6f17e90e9..f839287d26a913ddc5525e4322136bd74b50d20f 100644 (file)
@@ -144,7 +144,19 @@ hash_string(struct hash* hash, const char* s)
 }
 
 void
-hash_string_buffer(struct hash* hash, const char* s, int length)
+hash_string(struct hash* hash, const std::string& s)
+{
+  hash_string_buffer(hash, s.data(), s.length());
+}
+
+void
+hash_string_view(struct hash* hash, nonstd::string_view sv)
+{
+  hash_string_buffer(hash, sv.data(), sv.length());
+}
+
+void
+hash_string_buffer(struct hash* hash, const char* s, size_t length)
 {
   hash_buffer(hash, s, length);
   do_debug_text(hash, "\n", 1);
index 43b3a29a2b16e87f7fcf6551c084af451e364013..cfc092a09d7b50b88ecea44c6f8f3ab0d3edc765 100644 (file)
@@ -20,6 +20,8 @@
 
 #include "system.hpp"
 
+#include "third_party/nonstd/string_view.hpp"
+
 #define DIGEST_SIZE 20
 #define DIGEST_STRING_BUFFER_SIZE (2 * DIGEST_SIZE + 1)
 
@@ -78,7 +80,7 @@ void hash_delimiter(struct hash* hash, const char* type);
 // input file.
 void hash_buffer(struct hash* hash, const void* s, size_t len);
 
-// Hash a string.
+// Hash a NUL terminated string.
 //
 // If hash debugging is enabled, the string is written to the text input file
 // followed by a newline.
@@ -88,7 +90,9 @@ void hash_string(struct hash* hash, const char* s);
 //
 // If hash debugging is enabled, the string is written to the text input file
 // followed by a newline.
-void hash_string_buffer(struct hash* hash, const char* s, int length);
+void hash_string_buffer(struct hash* hash, const char* s, size_t length);
+void hash_string(struct hash* hash, const std::string& s);
+void hash_string_view(struct hash* hash, nonstd::string_view sv);
 
 // Hash an integer.
 //