diff options
| author | daurnimator <quae@daurnimator.com> | 2020-03-13 00:52:28 +1100 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-04-01 10:36:38 -0400 |
| commit | 7eb938c9096db54fe6e99148824252904c79c227 (patch) | |
| tree | 1eaf50073504d7005ed787ac798d5f56dd20bb57 /src/cache_hash.cpp | |
| parent | e535057364d33819001e55d34d104916cfab1b91 (diff) | |
| download | zig-7eb938c9096db54fe6e99148824252904c79c227.tar.gz zig-7eb938c9096db54fe6e99148824252904c79c227.zip | |
Use length field as passed in stage2 libc_installation instead of relying on zero termination
Diffstat (limited to 'src/cache_hash.cpp')
| -rw-r--r-- | src/cache_hash.cpp | 8 |
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); } |
