zstd-ruby 1.1.3.0 → 1.1.4.0
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/ext/zstdruby/libzstd/Makefile +9 -6
- data/ext/zstdruby/libzstd/common/bitstream.h +3 -0
- data/ext/zstdruby/libzstd/common/entropy_common.c +13 -19
- data/ext/zstdruby/libzstd/common/fse.h +48 -22
- data/ext/zstdruby/libzstd/common/fse_decompress.c +0 -1
- data/ext/zstdruby/libzstd/common/huf.h +27 -5
- data/ext/zstdruby/libzstd/common/mem.h +14 -12
- data/ext/zstdruby/libzstd/common/threading.c +5 -4
- data/ext/zstdruby/libzstd/common/threading.h +1 -1
- data/ext/zstdruby/libzstd/common/xxhash.c +3 -1
- data/ext/zstdruby/libzstd/common/xxhash.h +11 -15
- data/ext/zstdruby/libzstd/common/zstd_common.c +1 -1
- data/ext/zstdruby/libzstd/common/zstd_internal.h +4 -0
- data/ext/zstdruby/libzstd/compress/fse_compress.c +16 -9
- data/ext/zstdruby/libzstd/compress/huf_compress.c +103 -28
- data/ext/zstdruby/libzstd/compress/zstd_compress.c +90 -37
- data/ext/zstdruby/libzstd/compress/zstd_opt.h +1 -1
- data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +7 -8
- data/ext/zstdruby/libzstd/decompress/huf_decompress.c +20 -17
- data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +429 -120
- data/ext/zstdruby/libzstd/deprecated/zbuff.h +3 -1
- data/ext/zstdruby/libzstd/dictBuilder/cover.c +16 -8
- data/ext/zstdruby/libzstd/dictBuilder/zdict.h +1 -1
- data/ext/zstdruby/libzstd/dll/example/build_package.bat +1 -0
- data/ext/zstdruby/libzstd/dll/libzstd.def +2 -0
- data/ext/zstdruby/libzstd/legacy/zstd_legacy.h +122 -7
- data/ext/zstdruby/libzstd/legacy/zstd_v01.c +31 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v01.h +8 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v02.c +37 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v02.h +8 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v03.c +37 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v03.h +8 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v04.c +33 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v04.h +8 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v05.c +29 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v05.h +7 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v06.c +32 -1
- data/ext/zstdruby/libzstd/legacy/zstd_v06.h +7 -0
- data/ext/zstdruby/libzstd/legacy/zstd_v07.c +44 -6
- data/ext/zstdruby/libzstd/legacy/zstd_v07.h +8 -0
- data/ext/zstdruby/libzstd/zstd.h +87 -13
- data/lib/zstd-ruby/version.rb +1 -1
- metadata +2 -2
@@ -35,16 +35,19 @@
|
|
35
35
|
/* **************************************************************
|
36
36
|
* Compiler specifics
|
37
37
|
****************************************************************/
|
38
|
-
#if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
|
39
|
-
/* inline is defined */
|
40
|
-
#elif defined(_MSC_VER) || defined(__GNUC__)
|
41
|
-
# define inline __inline
|
42
|
-
#else
|
43
|
-
# define inline /* disable inline */
|
44
|
-
#endif
|
45
|
-
|
46
38
|
#ifdef _MSC_VER /* Visual Studio */
|
39
|
+
# define FORCE_INLINE static __forceinline
|
47
40
|
# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */
|
41
|
+
#else
|
42
|
+
# if defined (__cplusplus) || defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */
|
43
|
+
# ifdef __GNUC__
|
44
|
+
# define FORCE_INLINE static inline __attribute__((always_inline))
|
45
|
+
# else
|
46
|
+
# define FORCE_INLINE static inline
|
47
|
+
# endif
|
48
|
+
# else
|
49
|
+
# define FORCE_INLINE static
|
50
|
+
# endif /* __STDC_VERSION__ */
|
48
51
|
#endif
|
49
52
|
|
50
53
|
|
@@ -102,16 +105,16 @@ size_t HUF_readDTableX2 (HUF_DTable* DTable, const void* src, size_t srcSize)
|
|
102
105
|
|
103
106
|
/* Table header */
|
104
107
|
{ DTableDesc dtd = HUF_getDTableDesc(DTable);
|
105
|
-
if (tableLog > (U32)(dtd.maxTableLog+1)) return ERROR(tableLog_tooLarge); /* DTable too small,
|
108
|
+
if (tableLog > (U32)(dtd.maxTableLog+1)) return ERROR(tableLog_tooLarge); /* DTable too small, Huffman tree cannot fit in */
|
106
109
|
dtd.tableType = 0;
|
107
110
|
dtd.tableLog = (BYTE)tableLog;
|
108
111
|
memcpy(DTable, &dtd, sizeof(dtd));
|
109
112
|
}
|
110
113
|
|
111
|
-
/*
|
114
|
+
/* Calculate starting value for each rank */
|
112
115
|
{ U32 n, nextRankStart = 0;
|
113
116
|
for (n=1; n<tableLog+1; n++) {
|
114
|
-
U32 current = nextRankStart;
|
117
|
+
U32 const current = nextRankStart;
|
115
118
|
nextRankStart += (rankVal[n] << (n-1));
|
116
119
|
rankVal[n] = current;
|
117
120
|
} }
|
@@ -121,11 +124,11 @@ size_t HUF_readDTableX2 (HUF_DTable* DTable, const void* src, size_t srcSize)
|
|
121
124
|
for (n=0; n<nbSymbols; n++) {
|
122
125
|
U32 const w = huffWeight[n];
|
123
126
|
U32 const length = (1 << w) >> 1;
|
124
|
-
U32
|
127
|
+
U32 u;
|
125
128
|
HUF_DEltX2 D;
|
126
129
|
D.byte = (BYTE)n; D.nbBits = (BYTE)(tableLog + 1 - w);
|
127
|
-
for (
|
128
|
-
dt[
|
130
|
+
for (u = rankVal[w]; u < rankVal[w] + length; u++)
|
131
|
+
dt[u] = D;
|
129
132
|
rankVal[w] += length;
|
130
133
|
} }
|
131
134
|
|
@@ -152,7 +155,7 @@ static BYTE HUF_decodeSymbolX2(BIT_DStream_t* Dstream, const HUF_DEltX2* dt, con
|
|
152
155
|
if (MEM_64bits()) \
|
153
156
|
HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr)
|
154
157
|
|
155
|
-
|
158
|
+
FORCE_INLINE size_t HUF_decodeStreamX2(BYTE* p, BIT_DStream_t* const bitDPtr, BYTE* const pEnd, const HUF_DEltX2* const dt, const U32 dtLog)
|
156
159
|
{
|
157
160
|
BYTE* const pStart = p;
|
158
161
|
|
@@ -459,7 +462,7 @@ size_t HUF_readDTableX4 (HUF_DTable* DTable, const void* src, size_t srcSize)
|
|
459
462
|
void* dtPtr = DTable+1; /* force compiler to avoid strict-aliasing */
|
460
463
|
HUF_DEltX4* const dt = (HUF_DEltX4*)dtPtr;
|
461
464
|
|
462
|
-
HUF_STATIC_ASSERT(sizeof(HUF_DEltX4) == sizeof(HUF_DTable)); /* if
|
465
|
+
HUF_STATIC_ASSERT(sizeof(HUF_DEltX4) == sizeof(HUF_DTable)); /* if compiler fails here, assertion is wrong */
|
463
466
|
if (maxTableLog > HUF_TABLELOG_MAX) return ERROR(tableLog_tooLarge);
|
464
467
|
/* memset(weightList, 0, sizeof(weightList)); */ /* is not necessary, even though some analyzer complain ... */
|
465
468
|
|
@@ -559,7 +562,7 @@ static U32 HUF_decodeLastSymbolX4(void* op, BIT_DStream_t* DStream, const HUF_DE
|
|
559
562
|
if (MEM_64bits()) \
|
560
563
|
ptr += HUF_decodeSymbolX4(ptr, DStreamPtr, dt, dtLog)
|
561
564
|
|
562
|
-
|
565
|
+
FORCE_INLINE size_t HUF_decodeStreamX4(BYTE* p, BIT_DStream_t* bitDPtr, BYTE* const pEnd, const HUF_DEltX4* const dt, const U32 dtLog)
|
563
566
|
{
|
564
567
|
BYTE* const pStart = p;
|
565
568
|
|