Internal change
PiperOrigin-RevId: 623073126
This commit is contained in:
21
snappy.cc
21
snappy.cc
@@ -1792,7 +1792,7 @@ bool GetUncompressedLength(Source* source, uint32_t* result) {
|
|||||||
|
|
||||||
size_t Compress(Source* reader, Sink* writer, CompressionOptions options) {
|
size_t Compress(Source* reader, Sink* writer, CompressionOptions options) {
|
||||||
assert(options.level == 1 || options.level == 2);
|
assert(options.level == 1 || options.level == 2);
|
||||||
int snappy_token = 0;
|
int token = 0;
|
||||||
size_t written = 0;
|
size_t written = 0;
|
||||||
size_t N = reader->Available();
|
size_t N = reader->Available();
|
||||||
const size_t uncompressed_size = N;
|
const size_t uncompressed_size = N;
|
||||||
@@ -1848,21 +1848,22 @@ size_t Compress(Source* reader, Sink* writer, CompressionOptions options) {
|
|||||||
// have room for us directly.
|
// have room for us directly.
|
||||||
char* dest = writer->GetAppendBuffer(max_output, wmem.GetScratchOutput());
|
char* dest = writer->GetAppendBuffer(max_output, wmem.GetScratchOutput());
|
||||||
char* end = nullptr;
|
char* end = nullptr;
|
||||||
if (options.level == 1) {
|
if (options.level == 1) {
|
||||||
end = internal::CompressFragment(fragment, fragment_size, dest, table,
|
end = internal::CompressFragment(fragment, fragment_size, dest, table,
|
||||||
table_size);
|
table_size);
|
||||||
} else if (options.level == 2) {
|
} else if (options.level == 2) {
|
||||||
end = internal::CompressFragmentDoubleHash(
|
end = internal::CompressFragmentDoubleHash(
|
||||||
fragment, fragment_size, dest, table, table_size >> 1,
|
fragment, fragment_size, dest, table, table_size >> 1,
|
||||||
table + (table_size >> 1), table_size >> 1);
|
table + (table_size >> 1), table_size >> 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
writer->Append(dest, end - dest);
|
writer->Append(dest, end - dest);
|
||||||
written += (end - dest);
|
written += (end - dest);
|
||||||
|
|
||||||
N -= num_to_read;
|
N -= num_to_read;
|
||||||
reader->Skip(pending_advance);
|
reader->Skip(pending_advance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Report(token, "snappy_compress", written, uncompressed_size);
|
||||||
return written;
|
return written;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user