zstdlib 0.14.0-x86-linux → 0.15.0-x86-linux

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +5 -0
  3. data/ext/zstdlib_c/extconf.rb +1 -1
  4. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/bits.h +92 -87
  5. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/bitstream.h +26 -29
  6. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/compiler.h +36 -22
  7. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/cpu.h +1 -1
  8. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/debug.h +0 -9
  9. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/error_private.c +1 -0
  10. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/error_private.h +0 -10
  11. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/fse.h +2 -17
  12. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/fse_decompress.c +2 -0
  13. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/huf.h +0 -9
  14. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/mem.h +7 -11
  15. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/pool.h +0 -9
  16. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/portability_macros.h +22 -9
  17. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/threading.h +0 -8
  18. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/xxhash.h +93 -19
  19. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_deps.h +12 -0
  20. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_internal.h +1 -69
  21. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_trace.h +5 -12
  22. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/hist.c +10 -0
  23. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/hist.h +7 -0
  24. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress.c +1057 -367
  25. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_internal.h +227 -125
  26. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_literals.c +1 -1
  27. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_sequences.c +7 -7
  28. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_sequences.h +7 -6
  29. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_superblock.c +17 -17
  30. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_cwksp.h +41 -24
  31. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_double_fast.c +58 -50
  32. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_double_fast.h +4 -12
  33. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_fast.c +91 -74
  34. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_fast.h +4 -12
  35. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_lazy.c +64 -64
  36. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_lazy.h +30 -39
  37. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_ldm.c +48 -33
  38. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_ldm.h +6 -14
  39. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_opt.c +55 -51
  40. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_opt.h +8 -16
  41. data/ext/zstdlib_c/zstd-1.5.7/lib/compress/zstd_preSplit.c +238 -0
  42. data/ext/zstdlib_c/zstd-1.5.7/lib/compress/zstd_preSplit.h +33 -0
  43. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstdmt_compress.c +134 -93
  44. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstdmt_compress.h +4 -15
  45. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/huf_decompress_amd64.S +10 -3
  46. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress.c +14 -11
  47. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress_block.c +6 -12
  48. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress_internal.h +5 -5
  49. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/zdict.h +15 -8
  50. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/zstd.h +241 -132
  51. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/zstd_errors.h +1 -8
  52. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzwrite.c +2 -1
  53. data/lib/2.4/zstdlib_c.so +0 -0
  54. data/lib/2.5/zstdlib_c.so +0 -0
  55. data/lib/2.6/zstdlib_c.so +0 -0
  56. data/lib/2.7/zstdlib_c.so +0 -0
  57. data/lib/3.0/zstdlib_c.so +0 -0
  58. data/lib/3.1/zstdlib_c.so +0 -0
  59. data/lib/3.2/zstdlib_c.so +0 -0
  60. data/lib/3.3/zstdlib_c.so +0 -0
  61. data/lib/3.4/zstdlib_c.so +0 -0
  62. metadata +75 -73
  63. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/allocations.h +0 -0
  64. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/debug.c +0 -0
  65. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/entropy_common.c +0 -0
  66. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/pool.c +0 -0
  67. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/threading.c +0 -0
  68. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/xxhash.c +0 -0
  69. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_common.c +0 -0
  70. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/clevels.h +0 -0
  71. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/fse_compress.c +0 -0
  72. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/huf_compress.c +0 -0
  73. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_literals.h +0 -0
  74. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_superblock.h +0 -0
  75. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_ldm_geartab.h +0 -0
  76. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/huf_decompress.c +0 -0
  77. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_ddict.c +0 -0
  78. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_ddict.h +0 -0
  79. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress_block.h +0 -0
  80. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzclose.c +0 -0
  81. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzcompatibility.h +0 -0
  82. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzguts.h +0 -0
  83. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzlib.c +0 -0
  84. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzread.c +0 -0
  85. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/zstd_zlibwrapper.c +0 -0
  86. data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/zstd_zlibwrapper.h +5 -5
@@ -408,7 +408,7 @@ MEM_STATIC U32 ZSTD_readMINMATCH(const void* memPtr, U32 length)
408
408
  Assumption : always within prefix (i.e. not within extDict) */
409
409
  static
410
410
  ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
411
- U32 ZSTD_insertAndFindFirstIndexHash3 (const ZSTD_matchState_t* ms,
411
+ U32 ZSTD_insertAndFindFirstIndexHash3 (const ZSTD_MatchState_t* ms,
412
412
  U32* nextToUpdate3,
413
413
  const BYTE* const ip)
414
414
  {
@@ -440,7 +440,7 @@ U32 ZSTD_insertAndFindFirstIndexHash3 (const ZSTD_matchState_t* ms,
440
440
  static
441
441
  ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
442
442
  U32 ZSTD_insertBt1(
443
- const ZSTD_matchState_t* ms,
443
+ const ZSTD_MatchState_t* ms,
444
444
  const BYTE* const ip, const BYTE* const iend,
445
445
  U32 const target,
446
446
  U32 const mls, const int extDict)
@@ -560,7 +560,7 @@ U32 ZSTD_insertBt1(
560
560
  FORCE_INLINE_TEMPLATE
561
561
  ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
562
562
  void ZSTD_updateTree_internal(
563
- ZSTD_matchState_t* ms,
563
+ ZSTD_MatchState_t* ms,
564
564
  const BYTE* const ip, const BYTE* const iend,
565
565
  const U32 mls, const ZSTD_dictMode_e dictMode)
566
566
  {
@@ -580,7 +580,7 @@ void ZSTD_updateTree_internal(
580
580
  ms->nextToUpdate = target;
581
581
  }
582
582
 
583
- void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend) {
583
+ void ZSTD_updateTree(ZSTD_MatchState_t* ms, const BYTE* ip, const BYTE* iend) {
584
584
  ZSTD_updateTree_internal(ms, ip, iend, ms->cParams.minMatch, ZSTD_noDict);
585
585
  }
586
586
 
@@ -589,7 +589,7 @@ ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
589
589
  U32
590
590
  ZSTD_insertBtAndGetAllMatches (
591
591
  ZSTD_match_t* matches, /* store result (found matches) in this table (presumed large enough) */
592
- ZSTD_matchState_t* ms,
592
+ ZSTD_MatchState_t* ms,
593
593
  U32* nextToUpdate3,
594
594
  const BYTE* const ip, const BYTE* const iLimit,
595
595
  const ZSTD_dictMode_e dictMode,
@@ -625,7 +625,7 @@ ZSTD_insertBtAndGetAllMatches (
625
625
  U32 mnum = 0;
626
626
  U32 nbCompares = 1U << cParams->searchLog;
627
627
 
628
- const ZSTD_matchState_t* dms = dictMode == ZSTD_dictMatchState ? ms->dictMatchState : NULL;
628
+ const ZSTD_MatchState_t* dms = dictMode == ZSTD_dictMatchState ? ms->dictMatchState : NULL;
629
629
  const ZSTD_compressionParameters* const dmsCParams =
630
630
  dictMode == ZSTD_dictMatchState ? &dms->cParams : NULL;
631
631
  const BYTE* const dmsBase = dictMode == ZSTD_dictMatchState ? dms->window.base : NULL;
@@ -664,13 +664,13 @@ ZSTD_insertBtAndGetAllMatches (
664
664
  assert(curr >= windowLow);
665
665
  if ( dictMode == ZSTD_extDict
666
666
  && ( ((repOffset-1) /*intentional overflow*/ < curr - windowLow) /* equivalent to `curr > repIndex >= windowLow` */
667
- & (((U32)((dictLimit-1) - repIndex) >= 3) ) /* intentional overflow : do not test positions overlapping 2 memory segments */)
667
+ & (ZSTD_index_overlap_check(dictLimit, repIndex)) )
668
668
  && (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(repMatch, minMatch)) ) {
669
669
  repLen = (U32)ZSTD_count_2segments(ip+minMatch, repMatch+minMatch, iLimit, dictEnd, prefixStart) + minMatch;
670
670
  }
671
671
  if (dictMode == ZSTD_dictMatchState
672
672
  && ( ((repOffset-1) /*intentional overflow*/ < curr - (dmsLowLimit + dmsIndexDelta)) /* equivalent to `curr > repIndex >= dmsLowLimit` */
673
- & ((U32)((dictLimit-1) - repIndex) >= 3) ) /* intentional overflow : do not test positions overlapping 2 memory segments */
673
+ & (ZSTD_index_overlap_check(dictLimit, repIndex)) )
674
674
  && (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(repMatch, minMatch)) ) {
675
675
  repLen = (U32)ZSTD_count_2segments(ip+minMatch, repMatch+minMatch, iLimit, dmsEnd, prefixStart) + minMatch;
676
676
  } }
@@ -819,7 +819,7 @@ ZSTD_insertBtAndGetAllMatches (
819
819
 
820
820
  typedef U32 (*ZSTD_getAllMatchesFn)(
821
821
  ZSTD_match_t*,
822
- ZSTD_matchState_t*,
822
+ ZSTD_MatchState_t*,
823
823
  U32*,
824
824
  const BYTE*,
825
825
  const BYTE*,
@@ -831,7 +831,7 @@ FORCE_INLINE_TEMPLATE
831
831
  ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
832
832
  U32 ZSTD_btGetAllMatches_internal(
833
833
  ZSTD_match_t* matches,
834
- ZSTD_matchState_t* ms,
834
+ ZSTD_MatchState_t* ms,
835
835
  U32* nextToUpdate3,
836
836
  const BYTE* ip,
837
837
  const BYTE* const iHighLimit,
@@ -854,7 +854,7 @@ U32 ZSTD_btGetAllMatches_internal(
854
854
  #define GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, mls) \
855
855
  static U32 ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, mls)( \
856
856
  ZSTD_match_t* matches, \
857
- ZSTD_matchState_t* ms, \
857
+ ZSTD_MatchState_t* ms, \
858
858
  U32* nextToUpdate3, \
859
859
  const BYTE* ip, \
860
860
  const BYTE* const iHighLimit, \
@@ -886,7 +886,7 @@ GEN_ZSTD_BT_GET_ALL_MATCHES(dictMatchState)
886
886
  }
887
887
 
888
888
  static ZSTD_getAllMatchesFn
889
- ZSTD_selectBtGetAllMatches(ZSTD_matchState_t const* ms, ZSTD_dictMode_e const dictMode)
889
+ ZSTD_selectBtGetAllMatches(ZSTD_MatchState_t const* ms, ZSTD_dictMode_e const dictMode)
890
890
  {
891
891
  ZSTD_getAllMatchesFn const getAllMatchesFns[3][4] = {
892
892
  ZSTD_BT_GET_ALL_MATCHES_ARRAY(noDict),
@@ -905,7 +905,7 @@ ZSTD_selectBtGetAllMatches(ZSTD_matchState_t const* ms, ZSTD_dictMode_e const di
905
905
 
906
906
  /* Struct containing info needed to make decision about ldm inclusion */
907
907
  typedef struct {
908
- rawSeqStore_t seqStore; /* External match candidates store for this block */
908
+ RawSeqStore_t seqStore; /* External match candidates store for this block */
909
909
  U32 startPosInBlock; /* Start position of the current match candidate */
910
910
  U32 endPosInBlock; /* End position of the current match candidate */
911
911
  U32 offset; /* Offset of the match candidate */
@@ -915,7 +915,7 @@ typedef struct {
915
915
  * Moves forward in @rawSeqStore by @nbBytes,
916
916
  * which will update the fields 'pos' and 'posInSequence'.
917
917
  */
918
- static void ZSTD_optLdm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes)
918
+ static void ZSTD_optLdm_skipRawSeqStoreBytes(RawSeqStore_t* rawSeqStore, size_t nbBytes)
919
919
  {
920
920
  U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes);
921
921
  while (currPos && rawSeqStore->pos < rawSeqStore->size) {
@@ -972,7 +972,7 @@ ZSTD_opt_getNextMatchAndUpdateSeqStore(ZSTD_optLdm_t* optLdm, U32 currPosInBlock
972
972
  return;
973
973
  }
974
974
 
975
- /* Matches may be < MINMATCH by this process. In that case, we will reject them
975
+ /* Matches may be < minMatch by this process. In that case, we will reject them
976
976
  when we are deciding whether or not to add the ldm */
977
977
  optLdm->startPosInBlock = currPosInBlock + literalsBytesRemaining;
978
978
  optLdm->endPosInBlock = optLdm->startPosInBlock + matchBytesRemaining;
@@ -994,7 +994,8 @@ ZSTD_opt_getNextMatchAndUpdateSeqStore(ZSTD_optLdm_t* optLdm, U32 currPosInBlock
994
994
  * into 'matches'. Maintains the correct ordering of 'matches'.
995
995
  */
996
996
  static void ZSTD_optLdm_maybeAddMatch(ZSTD_match_t* matches, U32* nbMatches,
997
- const ZSTD_optLdm_t* optLdm, U32 currPosInBlock)
997
+ const ZSTD_optLdm_t* optLdm, U32 currPosInBlock,
998
+ U32 minMatch)
998
999
  {
999
1000
  U32 const posDiff = currPosInBlock - optLdm->startPosInBlock;
1000
1001
  /* Note: ZSTD_match_t actually contains offBase and matchLength (before subtracting MINMATCH) */
@@ -1003,7 +1004,7 @@ static void ZSTD_optLdm_maybeAddMatch(ZSTD_match_t* matches, U32* nbMatches,
1003
1004
  /* Ensure that current block position is not outside of the match */
1004
1005
  if (currPosInBlock < optLdm->startPosInBlock
1005
1006
  || currPosInBlock >= optLdm->endPosInBlock
1006
- || candidateMatchLength < MINMATCH) {
1007
+ || candidateMatchLength < minMatch) {
1007
1008
  return;
1008
1009
  }
1009
1010
 
@@ -1023,7 +1024,8 @@ static void ZSTD_optLdm_maybeAddMatch(ZSTD_match_t* matches, U32* nbMatches,
1023
1024
  static void
1024
1025
  ZSTD_optLdm_processMatchCandidate(ZSTD_optLdm_t* optLdm,
1025
1026
  ZSTD_match_t* matches, U32* nbMatches,
1026
- U32 currPosInBlock, U32 remainingBytes)
1027
+ U32 currPosInBlock, U32 remainingBytes,
1028
+ U32 minMatch)
1027
1029
  {
1028
1030
  if (optLdm->seqStore.size == 0 || optLdm->seqStore.pos >= optLdm->seqStore.size) {
1029
1031
  return;
@@ -1040,7 +1042,7 @@ ZSTD_optLdm_processMatchCandidate(ZSTD_optLdm_t* optLdm,
1040
1042
  }
1041
1043
  ZSTD_opt_getNextMatchAndUpdateSeqStore(optLdm, currPosInBlock, remainingBytes);
1042
1044
  }
1043
- ZSTD_optLdm_maybeAddMatch(matches, nbMatches, optLdm, currPosInBlock);
1045
+ ZSTD_optLdm_maybeAddMatch(matches, nbMatches, optLdm, currPosInBlock, minMatch);
1044
1046
  }
1045
1047
 
1046
1048
 
@@ -1072,8 +1074,8 @@ listStats(const U32* table, int lastEltID)
1072
1074
  FORCE_INLINE_TEMPLATE
1073
1075
  ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
1074
1076
  size_t
1075
- ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
1076
- seqStore_t* seqStore,
1077
+ ZSTD_compressBlock_opt_generic(ZSTD_MatchState_t* ms,
1078
+ SeqStore_t* seqStore,
1077
1079
  U32 rep[ZSTD_REP_NUM],
1078
1080
  const void* src, size_t srcSize,
1079
1081
  const int optLevel,
@@ -1122,7 +1124,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
1122
1124
  U32 const ll0 = !litlen;
1123
1125
  U32 nbMatches = getAllMatches(matches, ms, &nextToUpdate3, ip, iend, rep, ll0, minMatch);
1124
1126
  ZSTD_optLdm_processMatchCandidate(&optLdm, matches, &nbMatches,
1125
- (U32)(ip-istart), (U32)(iend-ip));
1127
+ (U32)(ip-istart), (U32)(iend-ip),
1128
+ minMatch);
1126
1129
  if (!nbMatches) {
1127
1130
  DEBUGLOG(8, "no match found at cPos %u", (unsigned)(ip-istart));
1128
1131
  ip++;
@@ -1197,7 +1200,7 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
1197
1200
  for (cur = 1; cur <= last_pos; cur++) {
1198
1201
  const BYTE* const inr = ip + cur;
1199
1202
  assert(cur <= ZSTD_OPT_NUM);
1200
- DEBUGLOG(7, "cPos:%zi==rPos:%u", inr-istart, cur);
1203
+ DEBUGLOG(7, "cPos:%i==rPos:%u", (int)(inr-istart), cur);
1201
1204
 
1202
1205
  /* Fix current position with one literal if cheaper */
1203
1206
  { U32 const litlen = opt[cur-1].litlen + 1;
@@ -1207,8 +1210,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
1207
1210
  assert(price < 1000000000); /* overflow check */
1208
1211
  if (price <= opt[cur].price) {
1209
1212
  ZSTD_optimal_t const prevMatch = opt[cur];
1210
- DEBUGLOG(7, "cPos:%zi==rPos:%u : better price (%.2f<=%.2f) using literal (ll==%u) (hist:%u,%u,%u)",
1211
- inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), litlen,
1213
+ DEBUGLOG(7, "cPos:%i==rPos:%u : better price (%.2f<=%.2f) using literal (ll==%u) (hist:%u,%u,%u)",
1214
+ (int)(inr-istart), cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), litlen,
1212
1215
  opt[cur-1].rep[0], opt[cur-1].rep[1], opt[cur-1].rep[2]);
1213
1216
  opt[cur] = opt[cur-1];
1214
1217
  opt[cur].litlen = litlen;
@@ -1227,34 +1230,34 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
1227
1230
  && (with1literal < opt[cur+1].price) ) {
1228
1231
  /* update offset history - before it disappears */
1229
1232
  U32 const prev = cur - prevMatch.mlen;
1230
- repcodes_t const newReps = ZSTD_newRep(opt[prev].rep, prevMatch.off, opt[prev].litlen==0);
1233
+ Repcodes_t const newReps = ZSTD_newRep(opt[prev].rep, prevMatch.off, opt[prev].litlen==0);
1231
1234
  assert(cur >= prevMatch.mlen);
1232
1235
  DEBUGLOG(7, "==> match+1lit is cheaper (%.2f < %.2f) (hist:%u,%u,%u) !",
1233
1236
  ZSTD_fCost(with1literal), ZSTD_fCost(withMoreLiterals),
1234
1237
  newReps.rep[0], newReps.rep[1], newReps.rep[2] );
1235
1238
  opt[cur+1] = prevMatch; /* mlen & offbase */
1236
- ZSTD_memcpy(opt[cur+1].rep, &newReps, sizeof(repcodes_t));
1239
+ ZSTD_memcpy(opt[cur+1].rep, &newReps, sizeof(Repcodes_t));
1237
1240
  opt[cur+1].litlen = 1;
1238
1241
  opt[cur+1].price = with1literal;
1239
1242
  if (last_pos < cur+1) last_pos = cur+1;
1240
1243
  }
1241
1244
  }
1242
1245
  } else {
1243
- DEBUGLOG(7, "cPos:%zi==rPos:%u : literal would cost more (%.2f>%.2f)",
1244
- inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price));
1246
+ DEBUGLOG(7, "cPos:%i==rPos:%u : literal would cost more (%.2f>%.2f)",
1247
+ (int)(inr-istart), cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price));
1245
1248
  }
1246
1249
  }
1247
1250
 
1248
1251
  /* Offset history is not updated during match comparison.
1249
1252
  * Do it here, now that the match is selected and confirmed.
1250
1253
  */
1251
- ZSTD_STATIC_ASSERT(sizeof(opt[cur].rep) == sizeof(repcodes_t));
1254
+ ZSTD_STATIC_ASSERT(sizeof(opt[cur].rep) == sizeof(Repcodes_t));
1252
1255
  assert(cur >= opt[cur].mlen);
1253
1256
  if (opt[cur].litlen == 0) {
1254
1257
  /* just finished a match => alter offset history */
1255
1258
  U32 const prev = cur - opt[cur].mlen;
1256
- repcodes_t const newReps = ZSTD_newRep(opt[prev].rep, opt[cur].off, opt[prev].litlen==0);
1257
- ZSTD_memcpy(opt[cur].rep, &newReps, sizeof(repcodes_t));
1259
+ Repcodes_t const newReps = ZSTD_newRep(opt[prev].rep, opt[cur].off, opt[prev].litlen==0);
1260
+ ZSTD_memcpy(opt[cur].rep, &newReps, sizeof(Repcodes_t));
1258
1261
  }
1259
1262
 
1260
1263
  /* last match must start at a minimum distance of 8 from oend */
@@ -1276,7 +1279,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
1276
1279
  U32 matchNb;
1277
1280
 
1278
1281
  ZSTD_optLdm_processMatchCandidate(&optLdm, matches, &nbMatches,
1279
- (U32)(inr-istart), (U32)(iend-inr));
1282
+ (U32)(inr-istart), (U32)(iend-inr),
1283
+ minMatch);
1280
1284
 
1281
1285
  if (!nbMatches) {
1282
1286
  DEBUGLOG(7, "rPos:%u : no match found", cur);
@@ -1284,8 +1288,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms,
1284
1288
  }
1285
1289
 
1286
1290
  { U32 const longestML = matches[nbMatches-1].len;
1287
- DEBUGLOG(7, "cPos:%zi==rPos:%u, found %u matches, of longest ML=%u",
1288
- inr-istart, cur, nbMatches, longestML);
1291
+ DEBUGLOG(7, "cPos:%i==rPos:%u, found %u matches, of longest ML=%u",
1292
+ (int)(inr-istart), cur, nbMatches, longestML);
1289
1293
 
1290
1294
  if ( (longestML > sufficient_len)
1291
1295
  || (cur + longestML >= ZSTD_OPT_NUM)
@@ -1353,10 +1357,10 @@ _shortestPath: /* cur, last_pos, best_mlen, best_off have to be set */
1353
1357
  /* Update offset history */
1354
1358
  if (lastStretch.litlen == 0) {
1355
1359
  /* finishing on a match : update offset history */
1356
- repcodes_t const reps = ZSTD_newRep(opt[cur].rep, lastStretch.off, opt[cur].litlen==0);
1357
- ZSTD_memcpy(rep, &reps, sizeof(repcodes_t));
1360
+ Repcodes_t const reps = ZSTD_newRep(opt[cur].rep, lastStretch.off, opt[cur].litlen==0);
1361
+ ZSTD_memcpy(rep, &reps, sizeof(Repcodes_t));
1358
1362
  } else {
1359
- ZSTD_memcpy(rep, lastStretch.rep, sizeof(repcodes_t));
1363
+ ZSTD_memcpy(rep, lastStretch.rep, sizeof(Repcodes_t));
1360
1364
  assert(cur >= lastStretch.litlen);
1361
1365
  cur -= lastStretch.litlen;
1362
1366
  }
@@ -1411,8 +1415,8 @@ _shortestPath: /* cur, last_pos, best_mlen, best_off have to be set */
1411
1415
  U32 const mlen = opt[storePos].mlen;
1412
1416
  U32 const offBase = opt[storePos].off;
1413
1417
  U32 const advance = llen + mlen;
1414
- DEBUGLOG(6, "considering seq starting at %zi, llen=%u, mlen=%u",
1415
- anchor - istart, (unsigned)llen, (unsigned)mlen);
1418
+ DEBUGLOG(6, "considering seq starting at %i, llen=%u, mlen=%u",
1419
+ (int)(anchor - istart), (unsigned)llen, (unsigned)mlen);
1416
1420
 
1417
1421
  if (mlen==0) { /* only literals => must be last "sequence", actually starting a new stream of sequences */
1418
1422
  assert(storePos == storeEnd); /* must be last sequence */
@@ -1440,7 +1444,7 @@ _shortestPath: /* cur, last_pos, best_mlen, best_off have to be set */
1440
1444
 
1441
1445
  #ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR
1442
1446
  static size_t ZSTD_compressBlock_opt0(
1443
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1447
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1444
1448
  const void* src, size_t srcSize, const ZSTD_dictMode_e dictMode)
1445
1449
  {
1446
1450
  return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 0 /* optLevel */, dictMode);
@@ -1449,7 +1453,7 @@ static size_t ZSTD_compressBlock_opt0(
1449
1453
 
1450
1454
  #ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR
1451
1455
  static size_t ZSTD_compressBlock_opt2(
1452
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1456
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1453
1457
  const void* src, size_t srcSize, const ZSTD_dictMode_e dictMode)
1454
1458
  {
1455
1459
  return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /* optLevel */, dictMode);
@@ -1458,7 +1462,7 @@ static size_t ZSTD_compressBlock_opt2(
1458
1462
 
1459
1463
  #ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR
1460
1464
  size_t ZSTD_compressBlock_btopt(
1461
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1465
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1462
1466
  const void* src, size_t srcSize)
1463
1467
  {
1464
1468
  DEBUGLOG(5, "ZSTD_compressBlock_btopt");
@@ -1477,8 +1481,8 @@ size_t ZSTD_compressBlock_btopt(
1477
1481
  */
1478
1482
  static
1479
1483
  ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
1480
- void ZSTD_initStats_ultra(ZSTD_matchState_t* ms,
1481
- seqStore_t* seqStore,
1484
+ void ZSTD_initStats_ultra(ZSTD_MatchState_t* ms,
1485
+ SeqStore_t* seqStore,
1482
1486
  U32 rep[ZSTD_REP_NUM],
1483
1487
  const void* src, size_t srcSize)
1484
1488
  {
@@ -1503,7 +1507,7 @@ void ZSTD_initStats_ultra(ZSTD_matchState_t* ms,
1503
1507
  }
1504
1508
 
1505
1509
  size_t ZSTD_compressBlock_btultra(
1506
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1510
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1507
1511
  const void* src, size_t srcSize)
1508
1512
  {
1509
1513
  DEBUGLOG(5, "ZSTD_compressBlock_btultra (srcSize=%zu)", srcSize);
@@ -1511,7 +1515,7 @@ size_t ZSTD_compressBlock_btultra(
1511
1515
  }
1512
1516
 
1513
1517
  size_t ZSTD_compressBlock_btultra2(
1514
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1518
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1515
1519
  const void* src, size_t srcSize)
1516
1520
  {
1517
1521
  U32 const curr = (U32)((const BYTE*)src - ms->window.base);
@@ -1541,14 +1545,14 @@ size_t ZSTD_compressBlock_btultra2(
1541
1545
 
1542
1546
  #ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR
1543
1547
  size_t ZSTD_compressBlock_btopt_dictMatchState(
1544
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1548
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1545
1549
  const void* src, size_t srcSize)
1546
1550
  {
1547
1551
  return ZSTD_compressBlock_opt0(ms, seqStore, rep, src, srcSize, ZSTD_dictMatchState);
1548
1552
  }
1549
1553
 
1550
1554
  size_t ZSTD_compressBlock_btopt_extDict(
1551
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1555
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1552
1556
  const void* src, size_t srcSize)
1553
1557
  {
1554
1558
  return ZSTD_compressBlock_opt0(ms, seqStore, rep, src, srcSize, ZSTD_extDict);
@@ -1557,14 +1561,14 @@ size_t ZSTD_compressBlock_btopt_extDict(
1557
1561
 
1558
1562
  #ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR
1559
1563
  size_t ZSTD_compressBlock_btultra_dictMatchState(
1560
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1564
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1561
1565
  const void* src, size_t srcSize)
1562
1566
  {
1563
1567
  return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_dictMatchState);
1564
1568
  }
1565
1569
 
1566
1570
  size_t ZSTD_compressBlock_btultra_extDict(
1567
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1571
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
1568
1572
  const void* src, size_t srcSize)
1569
1573
  {
1570
1574
  return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_extDict);
@@ -11,28 +11,24 @@
11
11
  #ifndef ZSTD_OPT_H
12
12
  #define ZSTD_OPT_H
13
13
 
14
- #if defined (__cplusplus)
15
- extern "C" {
16
- #endif
17
-
18
14
  #include "zstd_compress_internal.h"
19
15
 
20
16
  #if !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) \
21
17
  || !defined(ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR) \
22
18
  || !defined(ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR)
23
19
  /* used in ZSTD_loadDictionaryContent() */
24
- void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend);
20
+ void ZSTD_updateTree(ZSTD_MatchState_t* ms, const BYTE* ip, const BYTE* iend);
25
21
  #endif
26
22
 
27
23
  #ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR
28
24
  size_t ZSTD_compressBlock_btopt(
29
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
25
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
30
26
  void const* src, size_t srcSize);
31
27
  size_t ZSTD_compressBlock_btopt_dictMatchState(
32
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
28
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
33
29
  void const* src, size_t srcSize);
34
30
  size_t ZSTD_compressBlock_btopt_extDict(
35
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
31
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
36
32
  void const* src, size_t srcSize);
37
33
 
38
34
  #define ZSTD_COMPRESSBLOCK_BTOPT ZSTD_compressBlock_btopt
@@ -46,20 +42,20 @@ size_t ZSTD_compressBlock_btopt_extDict(
46
42
 
47
43
  #ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR
48
44
  size_t ZSTD_compressBlock_btultra(
49
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
45
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
50
46
  void const* src, size_t srcSize);
51
47
  size_t ZSTD_compressBlock_btultra_dictMatchState(
52
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
48
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
53
49
  void const* src, size_t srcSize);
54
50
  size_t ZSTD_compressBlock_btultra_extDict(
55
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
51
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
56
52
  void const* src, size_t srcSize);
57
53
 
58
54
  /* note : no btultra2 variant for extDict nor dictMatchState,
59
55
  * because btultra2 is not meant to work with dictionaries
60
56
  * and is only specific for the first block (no prefix) */
61
57
  size_t ZSTD_compressBlock_btultra2(
62
- ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
58
+ ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
63
59
  void const* src, size_t srcSize);
64
60
 
65
61
  #define ZSTD_COMPRESSBLOCK_BTULTRA ZSTD_compressBlock_btultra
@@ -73,8 +69,4 @@ size_t ZSTD_compressBlock_btultra2(
73
69
  #define ZSTD_COMPRESSBLOCK_BTULTRA2 NULL
74
70
  #endif
75
71
 
76
- #if defined (__cplusplus)
77
- }
78
- #endif
79
-
80
72
  #endif /* ZSTD_OPT_H */