multi_compress 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -3
  3. data/GET_STARTED.md +3 -3
  4. data/README.md +75 -66
  5. data/THIRD_PARTY_NOTICES.md +24 -0
  6. data/ext/multi_compress/brotli_dec_static_init.c +3 -0
  7. data/ext/multi_compress/brotli_enc_static_init.c +3 -0
  8. data/ext/multi_compress/extconf.rb +22 -1
  9. data/ext/multi_compress/multi_compress.c +152 -72
  10. data/ext/multi_compress/vendor/.vendored +2 -2
  11. data/ext/multi_compress/vendor/brotli/LICENSE +19 -0
  12. data/ext/multi_compress/vendor/brotli/c/common/constants.c +7 -7
  13. data/ext/multi_compress/vendor/brotli/c/common/constants.h +2 -5
  14. data/ext/multi_compress/vendor/brotli/c/common/context.c +2 -2
  15. data/ext/multi_compress/vendor/brotli/c/common/context.h +1 -2
  16. data/ext/multi_compress/vendor/brotli/c/common/dictionary.c +4 -5856
  17. data/ext/multi_compress/vendor/brotli/c/common/dictionary.h +1 -2
  18. data/ext/multi_compress/vendor/brotli/c/common/dictionary_inc.h +5847 -0
  19. data/ext/multi_compress/vendor/brotli/c/common/platform.c +0 -4
  20. data/ext/multi_compress/vendor/brotli/c/common/platform.h +182 -43
  21. data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary.c +3 -7
  22. data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary_internal.h +1 -1
  23. data/ext/multi_compress/vendor/brotli/c/common/static_init.h +56 -0
  24. data/ext/multi_compress/vendor/brotli/c/common/transform.c +6 -4
  25. data/ext/multi_compress/vendor/brotli/c/common/transform.h +1 -2
  26. data/ext/multi_compress/vendor/brotli/c/common/version.h +3 -3
  27. data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.c +2 -3
  28. data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.h +0 -4
  29. data/ext/multi_compress/vendor/brotli/c/dec/decode.c +128 -39
  30. data/ext/multi_compress/vendor/brotli/c/dec/huffman.c +2 -5
  31. data/ext/multi_compress/vendor/brotli/c/dec/huffman.h +0 -2
  32. data/ext/multi_compress/vendor/brotli/c/dec/prefix.c +67 -0
  33. data/ext/multi_compress/vendor/brotli/c/dec/prefix.h +18 -708
  34. data/ext/multi_compress/vendor/brotli/c/dec/prefix_inc.h +707 -0
  35. data/ext/multi_compress/vendor/brotli/c/dec/state.c +18 -15
  36. data/ext/multi_compress/vendor/brotli/c/dec/state.h +2 -6
  37. data/ext/multi_compress/vendor/brotli/c/dec/static_init.c +53 -0
  38. data/ext/multi_compress/vendor/brotli/c/dec/static_init.h +30 -0
  39. data/ext/multi_compress/vendor/brotli/c/enc/backward_references.c +32 -8
  40. data/ext/multi_compress/vendor/brotli/c/enc/backward_references.h +1 -5
  41. data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.c +15 -15
  42. data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.h +1 -5
  43. data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.c +28 -4
  44. data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.h +8 -40
  45. data/ext/multi_compress/vendor/brotli/c/enc/bit_cost_inc.h +1 -1
  46. data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.c +9 -12
  47. data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.h +0 -3
  48. data/ext/multi_compress/vendor/brotli/c/enc/block_splitter_inc.h +14 -8
  49. data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.c +10 -9
  50. data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.h +0 -6
  51. data/ext/multi_compress/vendor/brotli/c/enc/cluster.c +0 -2
  52. data/ext/multi_compress/vendor/brotli/c/enc/cluster.h +0 -2
  53. data/ext/multi_compress/vendor/brotli/c/enc/command.c +1 -1
  54. data/ext/multi_compress/vendor/brotli/c/enc/command.h +8 -10
  55. data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.c +3 -5
  56. data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.h +1 -4
  57. data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.c +3 -13
  58. data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.h +0 -2
  59. data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.c +5 -15
  60. data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.h +0 -2
  61. data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.c +127 -1830
  62. data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.h +23 -3
  63. data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash_inc.h +1829 -0
  64. data/ext/multi_compress/vendor/brotli/c/enc/encode.c +77 -52
  65. data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.c +9 -7
  66. data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.h +2 -4
  67. data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.c +3 -6
  68. data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.h +2 -4
  69. data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode_static.h +18 -12
  70. data/ext/multi_compress/vendor/brotli/c/enc/fast_log.c +1 -1
  71. data/ext/multi_compress/vendor/brotli/c/enc/fast_log.h +2 -3
  72. data/ext/multi_compress/vendor/brotli/c/enc/find_match_length.h +0 -2
  73. data/ext/multi_compress/vendor/brotli/c/enc/hash.h +38 -31
  74. data/ext/multi_compress/vendor/brotli/c/enc/hash_base.h +38 -0
  75. data/ext/multi_compress/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +11 -1
  76. data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match64_inc.h +24 -7
  77. data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match64_simd_inc.h +304 -0
  78. data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_inc.h +30 -11
  79. data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +4 -0
  80. data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_simd_inc.h +278 -0
  81. data/ext/multi_compress/vendor/brotli/c/enc/histogram.c +1 -0
  82. data/ext/multi_compress/vendor/brotli/c/enc/histogram.h +0 -4
  83. data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.c +4 -6
  84. data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.h +0 -2
  85. data/ext/multi_compress/vendor/brotli/c/enc/matching_tag_mask.h +69 -0
  86. data/ext/multi_compress/vendor/brotli/c/enc/memory.c +0 -5
  87. data/ext/multi_compress/vendor/brotli/c/enc/memory.h +0 -4
  88. data/ext/multi_compress/vendor/brotli/c/enc/metablock.c +7 -9
  89. data/ext/multi_compress/vendor/brotli/c/enc/metablock.h +3 -3
  90. data/ext/multi_compress/vendor/brotli/c/enc/metablock_inc.h +4 -4
  91. data/ext/multi_compress/vendor/brotli/c/enc/params.h +0 -1
  92. data/ext/multi_compress/vendor/brotli/c/enc/prefix.h +0 -2
  93. data/ext/multi_compress/vendor/brotli/c/enc/quality.h +17 -10
  94. data/ext/multi_compress/vendor/brotli/c/enc/ringbuffer.h +1 -4
  95. data/ext/multi_compress/vendor/brotli/c/enc/state.h +2 -2
  96. data/ext/multi_compress/vendor/brotli/c/enc/static_dict.c +5 -11
  97. data/ext/multi_compress/vendor/brotli/c/enc/static_dict.h +1 -3
  98. data/ext/multi_compress/vendor/brotli/c/enc/static_dict_lut.c +224 -0
  99. data/ext/multi_compress/vendor/brotli/c/enc/static_dict_lut.h +20 -5837
  100. data/ext/multi_compress/vendor/brotli/c/enc/static_dict_lut_inc.h +5830 -0
  101. data/ext/multi_compress/vendor/brotli/c/enc/static_init.c +59 -0
  102. data/ext/multi_compress/vendor/brotli/c/enc/static_init.h +30 -0
  103. data/ext/multi_compress/vendor/brotli/c/enc/static_init_lazy.cc +26 -0
  104. data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.c +1 -1
  105. data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.h +0 -2
  106. data/ext/multi_compress/vendor/brotli/c/enc/write_bits.h +0 -2
  107. data/ext/multi_compress/vendor/brotli/c/include/brotli/decode.h +1 -1
  108. data/ext/multi_compress/vendor/brotli/c/include/brotli/encode.h +5 -1
  109. data/ext/multi_compress/vendor/brotli/c/include/brotli/port.h +4 -7
  110. data/ext/multi_compress/vendor/brotli/c/include/brotli/types.h +2 -2
  111. data/ext/multi_compress/vendor/lz4/LICENSE +12 -0
  112. data/ext/multi_compress/vendor/zstd/COPYING +339 -0
  113. data/ext/multi_compress/vendor/zstd/LICENSE +30 -0
  114. data/ext/multi_compress/vendor/zstd/lib/Makefile +67 -35
  115. data/ext/multi_compress/vendor/zstd/lib/README.md +33 -2
  116. data/ext/multi_compress/vendor/zstd/lib/common/allocations.h +55 -0
  117. data/ext/multi_compress/vendor/zstd/lib/common/bits.h +205 -0
  118. data/ext/multi_compress/vendor/zstd/lib/common/bitstream.h +84 -108
  119. data/ext/multi_compress/vendor/zstd/lib/common/compiler.h +170 -41
  120. data/ext/multi_compress/vendor/zstd/lib/common/cpu.h +37 -1
  121. data/ext/multi_compress/vendor/zstd/lib/common/debug.c +7 -1
  122. data/ext/multi_compress/vendor/zstd/lib/common/debug.h +21 -21
  123. data/ext/multi_compress/vendor/zstd/lib/common/entropy_common.c +12 -40
  124. data/ext/multi_compress/vendor/zstd/lib/common/error_private.c +10 -2
  125. data/ext/multi_compress/vendor/zstd/lib/common/error_private.h +46 -47
  126. data/ext/multi_compress/vendor/zstd/lib/common/fse.h +8 -100
  127. data/ext/multi_compress/vendor/zstd/lib/common/fse_decompress.c +28 -116
  128. data/ext/multi_compress/vendor/zstd/lib/common/huf.h +79 -166
  129. data/ext/multi_compress/vendor/zstd/lib/common/mem.h +46 -66
  130. data/ext/multi_compress/vendor/zstd/lib/common/pool.c +27 -11
  131. data/ext/multi_compress/vendor/zstd/lib/common/pool.h +8 -11
  132. data/ext/multi_compress/vendor/zstd/lib/common/portability_macros.h +45 -11
  133. data/ext/multi_compress/vendor/zstd/lib/common/threading.c +74 -14
  134. data/ext/multi_compress/vendor/zstd/lib/common/threading.h +5 -18
  135. data/ext/multi_compress/vendor/zstd/lib/common/xxhash.c +5 -11
  136. data/ext/multi_compress/vendor/zstd/lib/common/xxhash.h +2411 -1003
  137. data/ext/multi_compress/vendor/zstd/lib/common/zstd_common.c +1 -36
  138. data/ext/multi_compress/vendor/zstd/lib/common/zstd_deps.h +13 -1
  139. data/ext/multi_compress/vendor/zstd/lib/common/zstd_internal.h +13 -182
  140. data/ext/multi_compress/vendor/zstd/lib/common/zstd_trace.h +6 -13
  141. data/ext/multi_compress/vendor/zstd/lib/compress/clevels.h +1 -1
  142. data/ext/multi_compress/vendor/zstd/lib/compress/fse_compress.c +15 -131
  143. data/ext/multi_compress/vendor/zstd/lib/compress/hist.c +11 -1
  144. data/ext/multi_compress/vendor/zstd/lib/compress/hist.h +8 -1
  145. data/ext/multi_compress/vendor/zstd/lib/compress/huf_compress.c +283 -189
  146. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress.c +2419 -903
  147. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_internal.h +423 -245
  148. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.c +116 -40
  149. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.h +16 -8
  150. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.c +10 -10
  151. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.h +8 -7
  152. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.c +254 -139
  153. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.h +1 -1
  154. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_cwksp.h +184 -95
  155. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.c +163 -81
  156. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.h +18 -14
  157. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.c +507 -197
  158. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.h +7 -14
  159. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.c +579 -484
  160. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.h +133 -65
  161. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.c +61 -40
  162. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.h +7 -15
  163. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm_geartab.h +1 -1
  164. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.c +352 -218
  165. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.h +37 -21
  166. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_preSplit.c +238 -0
  167. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_preSplit.h +33 -0
  168. data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.c +239 -175
  169. data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.h +5 -16
  170. data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress.c +543 -488
  171. data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress_amd64.S +78 -61
  172. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.c +4 -4
  173. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.h +1 -1
  174. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress.c +295 -115
  175. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.c +430 -293
  176. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.h +7 -2
  177. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_internal.h +11 -7
  178. data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff.h +1 -1
  179. data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_common.c +1 -1
  180. data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_compress.c +1 -1
  181. data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_decompress.c +3 -1
  182. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.c +95 -46
  183. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.h +3 -9
  184. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/divsufsort.h +0 -10
  185. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/fastcover.c +4 -4
  186. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/zdict.c +25 -97
  187. data/ext/multi_compress/vendor/zstd/lib/dll/example/Makefile +1 -1
  188. data/ext/multi_compress/vendor/zstd/lib/dll/example/README.md +1 -1
  189. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_legacy.h +38 -1
  190. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.c +19 -50
  191. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.h +1 -1
  192. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.c +27 -80
  193. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.h +1 -1
  194. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.c +28 -83
  195. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.h +1 -1
  196. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.c +25 -74
  197. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.h +1 -1
  198. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.c +31 -76
  199. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.h +1 -1
  200. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.c +44 -88
  201. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.h +1 -1
  202. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.c +33 -84
  203. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.h +1 -1
  204. data/ext/multi_compress/vendor/zstd/lib/libzstd.mk +65 -33
  205. data/ext/multi_compress/vendor/zstd/lib/libzstd.pc.in +5 -5
  206. data/ext/multi_compress/vendor/zstd/lib/module.modulemap +13 -3
  207. data/ext/multi_compress/vendor/zstd/lib/zdict.h +65 -36
  208. data/ext/multi_compress/vendor/zstd/lib/zstd.h +890 -267
  209. data/ext/multi_compress/vendor/zstd/lib/zstd_errors.h +28 -16
  210. data/lib/multi_compress/version.rb +1 -1
  211. metadata +29 -2
@@ -8,8 +8,6 @@
8
8
 
9
9
  #include "cluster.h"
10
10
 
11
- #include <brotli/types.h>
12
-
13
11
  #include "../common/platform.h"
14
12
  #include "bit_cost.h" /* BrotliPopulationCost */
15
13
  #include "fast_log.h"
@@ -9,8 +9,6 @@
9
9
  #ifndef BROTLI_ENC_CLUSTER_H_
10
10
  #define BROTLI_ENC_CLUSTER_H_
11
11
 
12
- #include <brotli/types.h>
13
-
14
12
  #include "../common/platform.h"
15
13
  #include "histogram.h"
16
14
  #include "memory.h"
@@ -6,7 +6,7 @@
6
6
 
7
7
  #include "command.h"
8
8
 
9
- #include <brotli/types.h>
9
+ #include "../common/platform.h"
10
10
 
11
11
  #if defined(__cplusplus) || defined(c_plusplus)
12
12
  extern "C" {
@@ -9,8 +9,6 @@
9
9
  #ifndef BROTLI_ENC_COMMAND_H_
10
10
  #define BROTLI_ENC_COMMAND_H_
11
11
 
12
- #include <brotli/types.h>
13
-
14
12
  #include "../common/constants.h"
15
13
  #include "../common/platform.h"
16
14
  #include "fast_log.h"
@@ -21,14 +19,14 @@
21
19
  extern "C" {
22
20
  #endif
23
21
 
24
- BROTLI_INTERNAL extern const uint32_t
25
- kBrotliInsBase[BROTLI_NUM_INS_COPY_CODES];
26
- BROTLI_INTERNAL extern const uint32_t
27
- kBrotliInsExtra[BROTLI_NUM_INS_COPY_CODES];
28
- BROTLI_INTERNAL extern const uint32_t
29
- kBrotliCopyBase[BROTLI_NUM_INS_COPY_CODES];
30
- BROTLI_INTERNAL extern const uint32_t
31
- kBrotliCopyExtra[BROTLI_NUM_INS_COPY_CODES];
22
+ BROTLI_INTERNAL extern const BROTLI_MODEL("small")
23
+ uint32_t kBrotliInsBase[BROTLI_NUM_INS_COPY_CODES];
24
+ BROTLI_INTERNAL extern const BROTLI_MODEL("small")
25
+ uint32_t kBrotliInsExtra[BROTLI_NUM_INS_COPY_CODES];
26
+ BROTLI_INTERNAL extern const BROTLI_MODEL("small")
27
+ uint32_t kBrotliCopyBase[BROTLI_NUM_INS_COPY_CODES];
28
+ BROTLI_INTERNAL extern const BROTLI_MODEL("small")
29
+ uint32_t kBrotliCopyExtra[BROTLI_NUM_INS_COPY_CODES];
32
30
 
33
31
  static BROTLI_INLINE uint16_t GetInsertLengthCode(size_t insertlen) {
34
32
  if (insertlen < 6) {
@@ -6,11 +6,9 @@
6
6
 
7
7
  #include "compound_dictionary.h"
8
8
 
9
- #include <brotli/types.h>
10
-
11
9
  #include "../common/platform.h"
10
+ #include <brotli/shared_dictionary.h>
12
11
  #include "memory.h"
13
- #include "quality.h"
14
12
 
15
13
  static PreparedDictionary* CreatePreparedDictionaryWithParams(MemoryManager* m,
16
14
  const uint8_t* source, size_t source_size, uint32_t bucket_bits,
@@ -191,8 +189,8 @@ BROTLI_BOOL AttachPreparedDictionary(
191
189
  compound->chunk_offsets[index + 1] = compound->total_size;
192
190
  {
193
191
  uint32_t* slot_offsets = (uint32_t*)(&dictionary[1]);
194
- uint16_t* heads = (uint16_t*)(&slot_offsets[1u << dictionary->slot_bits]);
195
- uint32_t* items = (uint32_t*)(&heads[1u << dictionary->bucket_bits]);
192
+ uint16_t* heads = (uint16_t*)(&slot_offsets[(size_t)1u << dictionary->slot_bits]);
193
+ uint32_t* items = (uint32_t*)(&heads[(size_t)1u << dictionary->bucket_bits]);
196
194
  const void* tail = (void*)&items[dictionary->num_items];
197
195
  if (dictionary->magic == kPreparedDictionaryMagic) {
198
196
  compound->chunk_source[index] = (const uint8_t*)tail;
@@ -7,11 +7,8 @@
7
7
  #ifndef BROTLI_ENC_PREPARED_DICTIONARY_H_
8
8
  #define BROTLI_ENC_PREPARED_DICTIONARY_H_
9
9
 
10
- #include <brotli/shared_dictionary.h>
11
- #include <brotli/types.h>
12
-
13
10
  #include "../common/platform.h"
14
- #include "../common/constants.h"
11
+ #include <brotli/shared_dictionary.h>
15
12
  #include "memory.h"
16
13
 
17
14
  /* "Fat" prepared dictionary, could be cooked outside of C implementation,
@@ -14,15 +14,13 @@
14
14
 
15
15
  #include "compress_fragment.h"
16
16
 
17
- #include <string.h> /* memcmp, memcpy, memset */
18
-
19
- #include <brotli/types.h>
20
-
17
+ #include "../common/constants.h"
21
18
  #include "../common/platform.h"
22
19
  #include "brotli_bit_stream.h"
23
20
  #include "entropy_encode.h"
24
21
  #include "fast_log.h"
25
22
  #include "find_match_length.h"
23
+ #include "hash_base.h"
26
24
  #include "write_bits.h"
27
25
 
28
26
  #if defined(__cplusplus) || defined(c_plusplus)
@@ -31,14 +29,6 @@ extern "C" {
31
29
 
32
30
  #define MAX_DISTANCE (long)BROTLI_MAX_BACKWARD_LIMIT(18)
33
31
 
34
- /* kHashMul32 multiplier has these properties:
35
- * The multiplier must be odd. Otherwise we may lose the highest bit.
36
- * No long streaks of ones or zeros.
37
- * There is no effort to ensure that it is a prime, the oddity is enough
38
- for this use.
39
- * The number has been tuned heuristically against compression benchmarks. */
40
- static const uint32_t kHashMul32 = 0x1E35A7BD;
41
-
42
32
  static BROTLI_INLINE uint32_t Hash(const uint8_t* p, size_t shift) {
43
33
  const uint64_t h = (BROTLI_UNALIGNED_LOAD64LE(p) << 24) * kHashMul32;
44
34
  return (uint32_t)(h >> shift);
@@ -417,7 +407,7 @@ static void EmitUncompressedMetaBlock(const uint8_t* begin, const uint8_t* end,
417
407
  storage[*storage_ix >> 3] = 0;
418
408
  }
419
409
 
420
- static uint32_t kCmdHistoSeed[128] = {
410
+ static BROTLI_MODEL("small") uint32_t kCmdHistoSeed[128] = {
421
411
  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
422
412
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
423
413
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
@@ -12,8 +12,6 @@
12
12
  #ifndef BROTLI_ENC_COMPRESS_FRAGMENT_H_
13
13
  #define BROTLI_ENC_COMPRESS_FRAGMENT_H_
14
14
 
15
- #include <brotli/types.h>
16
-
17
15
  #include "../common/constants.h"
18
16
  #include "../common/platform.h"
19
17
  #include "entropy_encode.h"
@@ -12,10 +12,6 @@
12
12
 
13
13
  #include "compress_fragment_two_pass.h"
14
14
 
15
- #include <string.h> /* memcmp, memcpy, memset */
16
-
17
- #include <brotli/types.h>
18
-
19
15
  #include "../common/constants.h"
20
16
  #include "../common/platform.h"
21
17
  #include "bit_cost.h"
@@ -23,6 +19,7 @@
23
19
  #include "entropy_encode.h"
24
20
  #include "fast_log.h"
25
21
  #include "find_match_length.h"
22
+ #include "hash_base.h"
26
23
  #include "write_bits.h"
27
24
 
28
25
  #if defined(__cplusplus) || defined(c_plusplus)
@@ -31,14 +28,6 @@ extern "C" {
31
28
 
32
29
  #define MAX_DISTANCE (long)BROTLI_MAX_BACKWARD_LIMIT(18)
33
30
 
34
- /* kHashMul32 multiplier has these properties:
35
- * The multiplier must be odd. Otherwise we may lose the highest bit.
36
- * No long streaks of ones or zeros.
37
- * There is no effort to ensure that it is a prime, the oddity is enough
38
- for this use.
39
- * The number has been tuned heuristically against compression benchmarks. */
40
- static const uint32_t kHashMul32 = 0x1E35A7BD;
41
-
42
31
  static BROTLI_INLINE uint32_t Hash(const uint8_t* p,
43
32
  size_t shift, size_t length) {
44
33
  const uint64_t h =
@@ -470,7 +459,7 @@ static void StoreCommands(BrotliTwoPassArena* s,
470
459
  const uint8_t* literals, const size_t num_literals,
471
460
  const uint32_t* commands, const size_t num_commands,
472
461
  size_t* storage_ix, uint8_t* storage) {
473
- static const uint32_t kNumExtraBits[128] = {
462
+ static const BROTLI_MODEL("small") uint32_t kNumExtraBits[128] = {
474
463
  0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5,
475
464
  6, 7, 8, 9, 10, 12, 14, 24, 0, 0, 0, 0, 0, 0, 0, 0,
476
465
  1, 1, 2, 2, 3, 3, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -480,7 +469,7 @@ static void StoreCommands(BrotliTwoPassArena* s,
480
469
  9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16,
481
470
  17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24,
482
471
  };
483
- static const uint32_t kInsertOffset[24] = {
472
+ static const BROTLI_MODEL("small") uint32_t kInsertOffset[24] = {
484
473
  0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 18, 26,
485
474
  34, 50, 66, 98, 130, 194, 322, 578, 1090, 2114, 6210, 22594,
486
475
  };
@@ -546,7 +535,8 @@ static BROTLI_BOOL ShouldCompress(BrotliTwoPassArena* s,
546
535
  for (i = 0; i < input_size; i += SAMPLE_RATE) {
547
536
  ++s->lit_histo[input[i]];
548
537
  }
549
- return TO_BROTLI_BOOL(BitsEntropy(s->lit_histo, 256) < max_total_bit_cost);
538
+ return TO_BROTLI_BOOL(
539
+ BrotliBitsEntropy(s->lit_histo, 256) < max_total_bit_cost);
550
540
  }
551
541
  }
552
542
 
@@ -13,8 +13,6 @@
13
13
  #ifndef BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_
14
14
  #define BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_
15
15
 
16
- #include <brotli/types.h>
17
-
18
16
  #include "../common/constants.h"
19
17
  #include "../common/platform.h"
20
18
  #include "entropy_encode.h"