mirror of
https://github.com/ziglang/zig.git
synced 2026-02-05 22:16:58 +00:00
Merge branch 'kristate-cache-invalidformat-issue1510'
This commit is contained in:
commit
d332311e53
@ -337,12 +337,12 @@ Error cache_hit(CacheHash *ch, Buf *out_digest) {
|
||||
return ErrorInvalidFormat;
|
||||
}
|
||||
|
||||
Optional<Slice<uint8_t>> opt_file_path = SplitIterator_next(&it);
|
||||
if (!opt_file_path.is_some) {
|
||||
Slice<uint8_t> file_path = SplitIterator_rest(&it);
|
||||
if (file_path.len == 0) {
|
||||
os_file_close(ch->manifest_file);
|
||||
return ErrorInvalidFormat;
|
||||
}
|
||||
Buf *this_path = buf_create_from_slice(opt_file_path.value);
|
||||
Buf *this_path = buf_create_from_slice(file_path);
|
||||
if (chf->path != nullptr && !buf_eql_buf(this_path, chf->path)) {
|
||||
os_file_close(ch->manifest_file);
|
||||
return ErrorInvalidFormat;
|
||||
|
||||
10
src/util.cpp
10
src/util.cpp
@ -78,6 +78,16 @@ Optional<Slice<uint8_t>> SplitIterator_next(SplitIterator *self) {
|
||||
return Optional<Slice<uint8_t>>::some(self->buffer.slice(start, end));
|
||||
}
|
||||
|
||||
// Ported from std/mem.zig
|
||||
Slice<uint8_t> SplitIterator_rest(SplitIterator *self) {
|
||||
// move to beginning of token
|
||||
size_t index = self->index;
|
||||
while (index < self->buffer.len && SplitIterator_isSplitByte(self, self->buffer.ptr[index])) {
|
||||
index += 1;
|
||||
}
|
||||
return self->buffer.sliceFrom(index);
|
||||
}
|
||||
|
||||
// Ported from std/mem.zig
|
||||
SplitIterator memSplit(Slice<uint8_t> buffer, Slice<uint8_t> split_bytes) {
|
||||
return SplitIterator{0, buffer, split_bytes};
|
||||
|
||||
@ -263,7 +263,8 @@ struct SplitIterator {
|
||||
};
|
||||
|
||||
bool SplitIterator_isSplitByte(SplitIterator *self, uint8_t byte);
|
||||
Optional<Slice<uint8_t>> SplitIterator_next(SplitIterator *self);
|
||||
Optional< Slice<uint8_t> > SplitIterator_next(SplitIterator *self);
|
||||
Slice<uint8_t> SplitIterator_rest(SplitIterator *self);
|
||||
SplitIterator memSplit(Slice<uint8_t> buffer, Slice<uint8_t> split_bytes);
|
||||
|
||||
#endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user