aboutsummaryrefslogtreecommitdiff
path: root/src/cache_hash.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cache_hash.cpp')
-rw-r--r--src/cache_hash.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/cache_hash.cpp b/src/cache_hash.cpp
index 3cff34ea5c..c12d8f29ef 100644
--- a/src/cache_hash.cpp
+++ b/src/cache_hash.cpp
@@ -27,11 +27,17 @@ void cache_init(CacheHash *ch, Buf *manifest_dir) {
void cache_mem(CacheHash *ch, const char *ptr, size_t len) {
assert(ch->manifest_file_path == nullptr);
assert(ptr != nullptr);
- // + 1 to include the null byte
blake2b_update(&ch->blake, ptr, len);
}
+void cache_slice(CacheHash *ch, Slice<const char> slice) {
+ // mix the length into the hash so that two juxtaposed cached slices can't collide
+ cache_usize(ch, slice.len);
+ cache_mem(ch, slice.ptr, slice.len);
+}
+
void cache_str(CacheHash *ch, const char *ptr) {
+ // + 1 to include the null byte
cache_mem(ch, ptr, strlen(ptr) + 1);
}