X7ROOT File Manager
Current Path:
/opt/alt/tests/alt-php82-pecl-brotli_0.18.3-2.el8/brotli/c/enc
opt
/
alt
/
tests
/
alt-php82-pecl-brotli_0.18.3-2.el8
/
brotli
/
c
/
enc
/
??
..
??
.libs
??
backward_references.c
(6.13 KB)
??
backward_references.dep
(2.56 KB)
??
backward_references.h
(1.18 KB)
??
backward_references.lo
(303 B)
??
backward_references_hq.c
(35.88 KB)
??
backward_references_hq.dep
(2.56 KB)
??
backward_references_hq.h
(3.68 KB)
??
backward_references_hq.lo
(309 B)
??
backward_references_inc.h
(7.99 KB)
??
bit_cost.c
(1.39 KB)
??
bit_cost.dep
(1.64 KB)
??
bit_cost.h
(896 B)
??
bit_cost.lo
(281 B)
??
bit_cost_inc.h
(4.02 KB)
??
block_encoder_inc.h
(1.11 KB)
??
block_splitter.c
(7.16 KB)
??
block_splitter.dep
(1.84 KB)
??
block_splitter.h
(1.59 KB)
??
block_splitter.lo
(293 B)
??
block_splitter_inc.h
(18.44 KB)
??
brotli_bit_stream.c
(49.72 KB)
??
brotli_bit_stream.dep
(1.94 KB)
??
brotli_bit_stream.h
(3.26 KB)
??
brotli_bit_stream.lo
(299 B)
??
cluster.c
(1.42 KB)
??
cluster.dep
(1.7 KB)
??
cluster.h
(997 B)
??
cluster.lo
(279 B)
??
cluster_inc.h
(11.55 KB)
??
command.c
(1 KB)
??
command.dep
(1.24 KB)
??
command.h
(6.77 KB)
??
command.lo
(279 B)
??
compound_dictionary.c
(6.5 KB)
??
compound_dictionary.dep
(543 B)
??
compound_dictionary.h
(2.38 KB)
??
compound_dictionary.lo
(303 B)
??
compress_fragment.c
(32.1 KB)
??
compress_fragment.dep
(2 KB)
??
compress_fragment.h
(3.49 KB)
??
compress_fragment.lo
(299 B)
??
compress_fragment_two_pass.c
(26.18 KB)
??
compress_fragment_two_pass.dep
(2.08 KB)
??
compress_fragment_two_pass.h
(2.79 KB)
??
compress_fragment_two_pass.lo
(317 B)
??
dictionary_hash.c
(7.75 KB)
??
dictionary_hash.dep
(537 B)
??
dictionary_hash.h
(1.5 KB)
??
dictionary_hash.lo
(295 B)
??
dictionary_hash_inc.h
(143.28 KB)
??
encode.c
(76.58 KB)
??
encode.dep
(3.59 KB)
??
encode.lo
(277 B)
??
encoder_dict.c
(22.83 KB)
??
encoder_dict.dep
(2.58 KB)
??
encoder_dict.h
(4.9 KB)
??
encoder_dict.lo
(289 B)
??
entropy_encode.c
(14.23 KB)
??
entropy_encode.dep
(531 B)
??
entropy_encode.h
(3.96 KB)
??
entropy_encode.lo
(293 B)
??
entropy_encode_static.h
(32.37 KB)
??
fast_log.c
(5.9 KB)
??
fast_log.dep
(366 B)
??
fast_log.h
(1.61 KB)
??
fast_log.lo
(281 B)
??
find_match_length.h
(2.12 KB)
??
hash.h
(23.73 KB)
??
hash_base.h
(1.34 KB)
??
hash_composite_inc.h
(4.98 KB)
??
hash_forgetful_chain_inc.h
(11.05 KB)
??
hash_longest_match64_inc.h
(10.41 KB)
??
hash_longest_match64_simd_inc.h
(11.56 KB)
??
hash_longest_match_inc.h
(10.34 KB)
??
hash_longest_match_quickly_inc.h
(9.26 KB)
??
hash_longest_match_simd_inc.h
(11.48 KB)
??
hash_rolling_inc.h
(7.06 KB)
??
hash_to_binary_tree_inc.h
(12.77 KB)
??
histogram.c
(3.18 KB)
??
histogram.dep
(1.51 KB)
??
histogram.h
(1.77 KB)
??
histogram.lo
(283 B)
??
histogram_inc.h
(1.37 KB)
??
literal_cost.c
(5.74 KB)
??
literal_cost.dep
(505 B)
??
literal_cost.h
(889 B)
??
literal_cost.lo
(289 B)
??
matching_tag_mask.h
(2.29 KB)
??
memory.c
(5.39 KB)
??
memory.dep
(360 B)
??
memory.h
(4.2 KB)
??
memory.lo
(277 B)
??
metablock.c
(26.07 KB)
??
metablock.dep
(1.9 KB)
??
metablock.h
(3.93 KB)
??
metablock.lo
(283 B)
??
metablock_inc.h
(7.46 KB)
??
params.h
(1.14 KB)
??
prefix.h
(1.9 KB)
??
quality.h
(7.68 KB)
??
ringbuffer.h
(5.83 KB)
??
state.h
(3.01 KB)
??
static_dict.c
(20.39 KB)
??
static_dict.dep
(1.14 KB)
??
static_dict.h
(1.19 KB)
??
static_dict.lo
(287 B)
??
static_dict_lut.c
(7.25 KB)
??
static_dict_lut.dep
(685 B)
??
static_dict_lut.h
(1.55 KB)
??
static_dict_lut.lo
(295 B)
??
static_dict_lut_inc.h
(457.82 KB)
??
static_init.c
(1.74 KB)
??
static_init.dep
(451 B)
??
static_init.h
(840 B)
??
static_init.lo
(287 B)
??
utf8_util.c
(2.22 KB)
??
utf8_util.dep
(369 B)
??
utf8_util.h
(878 B)
??
utf8_util.lo
(283 B)
??
write_bits.h
(2.77 KB)
Editing: hash_rolling_inc.h
/* NOLINT(build/header_guard) */ /* Copyright 2018 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* template parameters: FN, JUMP, NUMBUCKETS, MASK, CHUNKLEN */ /* NUMBUCKETS / (MASK + 1) = probability of storing and using hash code. */ /* JUMP = skip bytes for speedup */ /* Rolling hash for long distance long string matches. Stores one position per bucket, bucket key is computed over a long region. */ #define HashRolling HASHER() static const uint32_t FN(kRollingHashMul32) = 69069; static const uint32_t FN(kInvalidPos) = 0xffffffff; /* This hasher uses a longer forward length, but returning a higher value here will hurt compression by the main hasher when combined with a composite hasher. The hasher tests for forward itself instead. */ static BROTLI_INLINE size_t FN(HashTypeLength)(void) { return 4; } static BROTLI_INLINE size_t FN(StoreLookahead)(void) { return 4; } /* Computes a code from a single byte. A lookup table of 256 values could be used, but simply adding 1 works about as good. */ static uint32_t FN(HashByte)(uint8_t byte) { return (uint32_t)byte + 1u; } static uint32_t FN(HashRollingFunctionInitial)(uint32_t state, uint8_t add, uint32_t factor) { return (uint32_t)(factor * state + FN(HashByte)(add)); } static uint32_t FN(HashRollingFunction)(uint32_t state, uint8_t add, uint8_t rem, uint32_t factor, uint32_t factor_remove) { return (uint32_t)(factor * state + FN(HashByte)(add) - factor_remove * FN(HashByte)(rem)); } typedef struct HashRolling { uint32_t state; uint32_t* table; size_t next_ix; uint32_t chunk_len; uint32_t factor; uint32_t factor_remove; } HashRolling; static void FN(Initialize)( HasherCommon* common, HashRolling* BROTLI_RESTRICT self, const BrotliEncoderParams* params) { size_t i; self->state = 0; self->next_ix = 0; self->factor = FN(kRollingHashMul32); /* Compute the factor of the oldest byte to remove: factor**steps modulo 0xffffffff (the multiplications rely on 32-bit overflow) */ self->factor_remove = 1; for (i = 0; i < CHUNKLEN; i += JUMP) { self->factor_remove *= self->factor; } self->table = (uint32_t*)common->extra[0]; for (i = 0; i < NUMBUCKETS; i++) { self->table[i] = FN(kInvalidPos); } BROTLI_UNUSED(params); } static void FN(Prepare)(HashRolling* BROTLI_RESTRICT self, BROTLI_BOOL one_shot, size_t input_size, const uint8_t* BROTLI_RESTRICT data) { size_t i; /* Too small size, cannot use this hasher. */ if (input_size < CHUNKLEN) return; self->state = 0; for (i = 0; i < CHUNKLEN; i += JUMP) { self->state = FN(HashRollingFunctionInitial)( self->state, data[i], self->factor); } BROTLI_UNUSED(one_shot); } static BROTLI_INLINE void FN(HashMemAllocInBytes)( const BrotliEncoderParams* params, BROTLI_BOOL one_shot, size_t input_size, size_t* alloc_size) { BROTLI_UNUSED(params); BROTLI_UNUSED(one_shot); BROTLI_UNUSED(input_size); alloc_size[0] = NUMBUCKETS * sizeof(uint32_t); } static BROTLI_INLINE void FN(Store)(HashRolling* BROTLI_RESTRICT self, const uint8_t* BROTLI_RESTRICT data, const size_t mask, const size_t ix) { BROTLI_UNUSED(self); BROTLI_UNUSED(data); BROTLI_UNUSED(mask); BROTLI_UNUSED(ix); } static BROTLI_INLINE void FN(StoreRange)(HashRolling* BROTLI_RESTRICT self, const uint8_t* BROTLI_RESTRICT data, const size_t mask, const size_t ix_start, const size_t ix_end) { BROTLI_UNUSED(self); BROTLI_UNUSED(data); BROTLI_UNUSED(mask); BROTLI_UNUSED(ix_start); BROTLI_UNUSED(ix_end); } static BROTLI_INLINE void FN(StitchToPreviousBlock)( HashRolling* BROTLI_RESTRICT self, size_t num_bytes, size_t position, const uint8_t* ringbuffer, size_t ring_buffer_mask) { /* In this case we must re-initialize the hasher from scratch from the current position. */ size_t position_masked; size_t available = num_bytes; if ((position & (JUMP - 1)) != 0) { size_t diff = JUMP - (position & (JUMP - 1)); available = (diff > available) ? 0 : (available - diff); position += diff; } position_masked = position & ring_buffer_mask; /* wrapping around ringbuffer not handled. */ if (available > ring_buffer_mask - position_masked) { available = ring_buffer_mask - position_masked; } FN(Prepare)(self, BROTLI_FALSE, available, ringbuffer + (position & ring_buffer_mask)); self->next_ix = position; BROTLI_UNUSED(num_bytes); } static BROTLI_INLINE void FN(PrepareDistanceCache)( HashRolling* BROTLI_RESTRICT self, int* BROTLI_RESTRICT distance_cache) { BROTLI_UNUSED(self); BROTLI_UNUSED(distance_cache); } static BROTLI_INLINE void FN(FindLongestMatch)( HashRolling* BROTLI_RESTRICT self, const BrotliEncoderDictionary* dictionary, const uint8_t* BROTLI_RESTRICT data, const size_t ring_buffer_mask, const int* BROTLI_RESTRICT distance_cache, const size_t cur_ix, const size_t max_length, const size_t max_backward, const size_t dictionary_distance, const size_t max_distance, HasherSearchResult* BROTLI_RESTRICT out) { const size_t cur_ix_masked = cur_ix & ring_buffer_mask; size_t pos; if ((cur_ix & (JUMP - 1)) != 0) return; /* Not enough lookahead */ if (max_length < CHUNKLEN) return; for (pos = self->next_ix; pos <= cur_ix; pos += JUMP) { uint32_t code = self->state & MASK; uint8_t rem = data[pos & ring_buffer_mask]; uint8_t add = data[(pos + CHUNKLEN) & ring_buffer_mask]; size_t found_ix = FN(kInvalidPos); self->state = FN(HashRollingFunction)( self->state, add, rem, self->factor, self->factor_remove); if (code < NUMBUCKETS) { found_ix = self->table[code]; self->table[code] = (uint32_t)pos; if (pos == cur_ix && found_ix != FN(kInvalidPos)) { /* The cast to 32-bit makes backward distances up to 4GB work even if cur_ix is above 4GB, despite using 32-bit values in the table. */ size_t backward = (uint32_t)(cur_ix - found_ix); if (backward <= max_backward) { const size_t found_ix_masked = found_ix & ring_buffer_mask; const size_t len = FindMatchLengthWithLimit(&data[found_ix_masked], &data[cur_ix_masked], max_length); if (len >= 4 && len > out->len) { score_t score = BackwardReferenceScore(len, backward); if (score > out->score) { out->len = len; out->distance = backward; out->score = score; out->len_code_delta = 0; } } } } } } self->next_ix = cur_ix + JUMP; /* NOTE: this hasher does not search in the dictionary. It is used as backup-hasher, the main hasher already searches in it. */ BROTLI_UNUSED(dictionary); BROTLI_UNUSED(distance_cache); BROTLI_UNUSED(dictionary_distance); BROTLI_UNUSED(max_distance); } #undef HashRolling
Upload File
Create Folder