zstd-ruby 1.2.0.0 → 1.3.0.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.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/zstdruby/libzstd/Makefile +7 -5
  4. data/ext/zstdruby/libzstd/common/bitstream.h +23 -9
  5. data/ext/zstdruby/libzstd/common/error_private.c +4 -1
  6. data/ext/zstdruby/libzstd/common/huf.h +20 -0
  7. data/ext/zstdruby/libzstd/common/mem.h +0 -14
  8. data/ext/zstdruby/libzstd/common/pool.c +12 -0
  9. data/ext/zstdruby/libzstd/common/pool.h +5 -0
  10. data/ext/zstdruby/libzstd/common/threading.c +0 -1
  11. data/ext/zstdruby/libzstd/common/zstd_common.c +25 -18
  12. data/ext/zstdruby/libzstd/common/zstd_errors.h +15 -7
  13. data/ext/zstdruby/libzstd/common/zstd_internal.h +59 -9
  14. data/ext/zstdruby/libzstd/compress/huf_compress.c +7 -3
  15. data/ext/zstdruby/libzstd/compress/zstd_compress.c +1082 -487
  16. data/ext/zstdruby/libzstd/compress/zstd_opt.h +30 -15
  17. data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +362 -158
  18. data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +49 -13
  19. data/ext/zstdruby/libzstd/decompress/huf_decompress.c +150 -26
  20. data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +380 -258
  21. data/ext/zstdruby/libzstd/dictBuilder/cover.c +23 -37
  22. data/ext/zstdruby/libzstd/dictBuilder/zdict.c +30 -40
  23. data/ext/zstdruby/libzstd/dictBuilder/zdict.h +104 -95
  24. data/ext/zstdruby/libzstd/legacy/zstd_v04.c +11 -10
  25. data/ext/zstdruby/libzstd/legacy/zstd_v05.c +14 -19
  26. data/ext/zstdruby/libzstd/legacy/zstd_v06.c +13 -12
  27. data/ext/zstdruby/libzstd/legacy/zstd_v07.c +13 -14
  28. data/ext/zstdruby/libzstd/zstd.h +507 -166
  29. data/lib/zstd-ruby/version.rb +1 -1
  30. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 90c5ef25c36e660027688987e2c0d4c867aa33f6
4
- data.tar.gz: 54806b961cf688772ac05d856d3d72359caa3dfb
3
+ metadata.gz: f37d33e2de9a2f6792e4ed617a0015414c939e27
4
+ data.tar.gz: 284159f8db3f657c3152bf9a33d9982614815f43
5
5
  SHA512:
6
- metadata.gz: a7c6df76d82bda82633e3e93971e77c42b721e766568a0993589c83494c887aa70363908d50d10372ba7a298deb5fa78a0f58662becd5186db440a7e6e90422a
7
- data.tar.gz: 7cff0cfe30172d6c455b57e1785f0ddc2b612408cd5a83b98fabd7ff58399ae03e51c4dde244e36e736d7def3b16de788e33bd74450868826f0f6c293860d277
6
+ metadata.gz: a3369c26e404a541ca0e1f1c7ce8e23d801a74ee5aacc1e22ed3f77dea3573109100f824551ed4ea16659b2d6690d22f5f3665e2ff84ca48d514dd302999be13
7
+ data.tar.gz: '07911cc0475213a4898781a0b7a3ae29ed195e443a4fe2531c8affaf2307edeb6523252079c650573b769b7ce12209ffe08b5e605ca948829463d6604300b1e0'
data/README.md CHANGED
@@ -9,7 +9,7 @@ See https://github.com/facebook/zstd
9
9
  Fork from https://github.com/jarredholman/ruby-zstd.
10
10
 
11
11
  ## Zstd version
12
- v1.2.0 (https://github.com/facebook/zstd/tree/v1.2.0)
12
+ v1.3.0 (https://github.com/facebook/zstd/tree/v1.3.0)
13
13
 
14
14
  ## Installation
15
15
 
@@ -22,9 +22,11 @@ VERSION?= $(LIBVER)
22
22
 
23
23
  CPPFLAGS+= -I. -I./common -DXXH_NAMESPACE=ZSTD_
24
24
  CFLAGS ?= -O3
25
- DEBUGFLAGS = -g -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
26
- -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
27
- -Wstrict-prototypes -Wundef -Wpointer-arith -Wformat-security
25
+ DEBUGFLAGS = -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
26
+ -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
27
+ -Wstrict-prototypes -Wundef -Wpointer-arith -Wformat-security \
28
+ -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
29
+ -Wredundant-decls
28
30
  CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
29
31
  FLAGS = $(CPPFLAGS) $(CFLAGS)
30
32
 
@@ -71,7 +73,7 @@ libzstd.a: $(ZSTD_OBJ)
71
73
  @echo compiling static library
72
74
  @$(AR) $(ARFLAGS) $@ $^
73
75
 
74
- libzstd.a-mt: CPPFLAGS += -DZSTD_MULTHREAD
76
+ libzstd.a-mt: CPPFLAGS += -DZSTD_MULTITHREAD
75
77
  libzstd.a-mt: libzstd.a
76
78
 
77
79
  $(LIBZSTD): LDFLAGS += -shared -fPIC -fvisibility=hidden
@@ -147,7 +149,7 @@ install: libzstd.a libzstd libzstd.pc
147
149
  @$(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/ $(DESTDIR)$(INCLUDEDIR)/
148
150
  @$(INSTALL_DATA) libzstd.pc $(DESTDIR)$(PKGCONFIGDIR)/
149
151
  @echo Installing libraries
150
- @$(INSTALL_LIB) libzstd.a $(DESTDIR)$(LIBDIR)
152
+ @$(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR)
151
153
  @$(INSTALL_LIB) libzstd.$(SHARED_EXT_VER) $(DESTDIR)$(LIBDIR)
152
154
  @ln -sf libzstd.$(SHARED_EXT_VER) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR)
153
155
  @ln -sf libzstd.$(SHARED_EXT_VER) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
@@ -39,7 +39,6 @@
39
39
  extern "C" {
40
40
  #endif
41
41
 
42
-
43
42
  /*
44
43
  * This API consists of small unitary functions, which must be inlined for best performance.
45
44
  * Since link-time-optimization is not available for all compilers,
@@ -59,7 +58,9 @@ extern "C" {
59
58
  #if defined(BIT_DEBUG) && (BIT_DEBUG>=1)
60
59
  # include <assert.h>
61
60
  #else
62
- # define assert(condition) ((void)0)
61
+ # ifndef assert
62
+ # define assert(condition) ((void)0)
63
+ # endif
63
64
  #endif
64
65
 
65
66
 
@@ -74,6 +75,7 @@ extern "C" {
74
75
  #define STREAM_ACCUMULATOR_MIN_64 57
75
76
  #define STREAM_ACCUMULATOR_MIN ((U32)(MEM_32bits() ? STREAM_ACCUMULATOR_MIN_32 : STREAM_ACCUMULATOR_MIN_64))
76
77
 
78
+
77
79
  /*-******************************************
78
80
  * bitStream encoding API (write forward)
79
81
  ********************************************/
@@ -303,13 +305,25 @@ MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, si
303
305
  bitD->bitContainer = *(const BYTE*)(bitD->start);
304
306
  switch(srcSize)
305
307
  {
306
- case 7: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[6]) << (sizeof(bitD->bitContainer)*8 - 16);
307
- case 6: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[5]) << (sizeof(bitD->bitContainer)*8 - 24);
308
- case 5: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[4]) << (sizeof(bitD->bitContainer)*8 - 32);
309
- case 4: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[3]) << 24;
310
- case 3: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[2]) << 16;
311
- case 2: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[1]) << 8;
312
- default:;
308
+ case 7: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[6]) << (sizeof(bitD->bitContainer)*8 - 16);
309
+ /* fall-through */
310
+
311
+ case 6: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[5]) << (sizeof(bitD->bitContainer)*8 - 24);
312
+ /* fall-through */
313
+
314
+ case 5: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[4]) << (sizeof(bitD->bitContainer)*8 - 32);
315
+ /* fall-through */
316
+
317
+ case 4: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[3]) << 24;
318
+ /* fall-through */
319
+
320
+ case 3: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[2]) << 16;
321
+ /* fall-through */
322
+
323
+ case 2: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[1]) << 8;
324
+ /* fall-through */
325
+
326
+ default: break;
313
327
  }
314
328
  { BYTE const lastByte = ((const BYTE*)srcBuffer)[srcSize-1];
315
329
  bitD->bitsConsumed = lastByte ? 8 - BIT_highbit32(lastByte) : 0;
@@ -24,7 +24,8 @@ const char* ERR_getErrorString(ERR_enum code)
24
24
  case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter";
25
25
  case PREFIX(frameParameter_unsupportedBy32bits): return "Frame parameter unsupported in 32-bits mode";
26
26
  case PREFIX(frameParameter_windowTooLarge): return "Frame requires too much memory for decoding";
27
- case PREFIX(compressionParameter_unsupported): return "Compression parameter is out of bound";
27
+ case PREFIX(compressionParameter_unsupported): return "Compression parameter is not supported";
28
+ case PREFIX(compressionParameter_outOfBound): return "Compression parameter is out of bound";
28
29
  case PREFIX(init_missing): return "Context should be init first";
29
30
  case PREFIX(memory_allocation): return "Allocation error : not enough memory";
30
31
  case PREFIX(stage_wrong): return "Operation not authorized at current processing stage";
@@ -38,6 +39,8 @@ const char* ERR_getErrorString(ERR_enum code)
38
39
  case PREFIX(dictionary_corrupted): return "Dictionary is corrupted";
39
40
  case PREFIX(dictionary_wrong): return "Dictionary mismatch";
40
41
  case PREFIX(dictionaryCreation_failed): return "Cannot create Dictionary from provided samples";
42
+ case PREFIX(frameIndex_tooLarge): return "Frame index is too large";
43
+ case PREFIX(seekableIO): return "An I/O error occurred when reading/seeking";
41
44
  case PREFIX(maxCode):
42
45
  default: return notErrorCode;
43
46
  }
@@ -111,6 +111,18 @@ HUF_PUBLIC_API size_t HUF_compress2 (void* dst, size_t dstCapacity, const void*
111
111
  #define HUF_WORKSPACE_SIZE_U32 (HUF_WORKSPACE_SIZE / sizeof(U32))
112
112
  HUF_PUBLIC_API size_t HUF_compress4X_wksp (void* dst, size_t dstCapacity, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize);
113
113
 
114
+ /**
115
+ * The minimum workspace size for the `workSpace` used in
116
+ * HUF_readDTableX2_wksp() and HUF_readDTableX4_wksp().
117
+ *
118
+ * The space used depends on HUF_TABLELOG_MAX, ranging from ~1500 bytes when
119
+ * HUF_TABLE_LOG_MAX=12 to ~1850 bytes when HUF_TABLE_LOG_MAX=15.
120
+ * Buffer overflow errors may potentially occur if code modifications result in
121
+ * a required workspace size greater than that specified in the following
122
+ * macro.
123
+ */
124
+ #define HUF_DECOMPRESS_WORKSPACE_SIZE (2 << 10)
125
+ #define HUF_DECOMPRESS_WORKSPACE_SIZE_U32 (HUF_DECOMPRESS_WORKSPACE_SIZE / sizeof(U32))
114
126
 
115
127
 
116
128
  /* ******************************************************************
@@ -170,8 +182,11 @@ size_t HUF_decompress4X4 (void* dst, size_t dstSize, const void* cSrc, size_t cS
170
182
 
171
183
  size_t HUF_decompress4X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< decodes RLE and uncompressed */
172
184
  size_t HUF_decompress4X_hufOnly(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< considers RLE and uncompressed as errors */
185
+ size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< considers RLE and uncompressed as errors */
173
186
  size_t HUF_decompress4X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< single-symbol decoder */
187
+ size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< single-symbol decoder */
174
188
  size_t HUF_decompress4X4_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< double-symbols decoder */
189
+ size_t HUF_decompress4X4_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< double-symbols decoder */
175
190
 
176
191
 
177
192
  /* ****************************************
@@ -243,7 +258,9 @@ HUF_decompress() does the following:
243
258
  U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize);
244
259
 
245
260
  size_t HUF_readDTableX2 (HUF_DTable* DTable, const void* src, size_t srcSize);
261
+ size_t HUF_readDTableX2_wksp (HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize);
246
262
  size_t HUF_readDTableX4 (HUF_DTable* DTable, const void* src, size_t srcSize);
263
+ size_t HUF_readDTableX4_wksp (HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize);
247
264
 
248
265
  size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable);
249
266
  size_t HUF_decompress4X2_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable);
@@ -266,8 +283,11 @@ size_t HUF_decompress1X2 (void* dst, size_t dstSize, const void* cSrc, size_t cS
266
283
  size_t HUF_decompress1X4 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /* double-symbol decoder */
267
284
 
268
285
  size_t HUF_decompress1X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize);
286
+ size_t HUF_decompress1X_DCtx_wksp (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize);
269
287
  size_t HUF_decompress1X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< single-symbol decoder */
288
+ size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< single-symbol decoder */
270
289
  size_t HUF_decompress1X4_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< double-symbols decoder */
290
+ size_t HUF_decompress1X4_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< double-symbols decoder */
271
291
 
272
292
  size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); /**< automatic selection of sing or double symbol decoder, based on DTable */
273
293
  size_t HUF_decompress1X2_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable);
@@ -352,20 +352,6 @@ MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val)
352
352
  }
353
353
 
354
354
 
355
- /* function safe only for comparisons */
356
- MEM_STATIC U32 MEM_readMINMATCH(const void* memPtr, U32 length)
357
- {
358
- switch (length)
359
- {
360
- default :
361
- case 4 : return MEM_read32(memPtr);
362
- case 3 : if (MEM_isLittleEndian())
363
- return MEM_read32(memPtr)<<8;
364
- else
365
- return MEM_read32(memPtr)>>8;
366
- }
367
- }
368
-
369
355
  #if defined (__cplusplus)
370
356
  }
371
357
  #endif
@@ -146,6 +146,13 @@ void POOL_free(POOL_ctx *ctx) {
146
146
  free(ctx);
147
147
  }
148
148
 
149
+ size_t POOL_sizeof(POOL_ctx *ctx) {
150
+ if (ctx==NULL) return 0; /* supports sizeof NULL */
151
+ return sizeof(*ctx)
152
+ + ctx->queueSize * sizeof(POOL_job)
153
+ + ctx->numThreads * sizeof(pthread_t);
154
+ }
155
+
149
156
  void POOL_add(void *ctxVoid, POOL_function function, void *opaque) {
150
157
  POOL_ctx *ctx = (POOL_ctx *)ctxVoid;
151
158
  if (!ctx) { return; }
@@ -191,4 +198,9 @@ void POOL_add(void *ctx, POOL_function function, void *opaque) {
191
198
  function(opaque);
192
199
  }
193
200
 
201
+ size_t POOL_sizeof(POOL_ctx *ctx) {
202
+ if (ctx==NULL) return 0; /* supports sizeof NULL */
203
+ return sizeof(*ctx);
204
+ }
205
+
194
206
  #endif /* ZSTD_MULTITHREAD */
@@ -32,6 +32,11 @@ POOL_ctx *POOL_create(size_t numThreads, size_t queueSize);
32
32
  */
33
33
  void POOL_free(POOL_ctx *ctx);
34
34
 
35
+ /*! POOL_sizeof() :
36
+ return memory usage of pool returned by POOL_create().
37
+ */
38
+ size_t POOL_sizeof(POOL_ctx *ctx);
39
+
35
40
  /*! POOL_function :
36
41
  The function type that can be added to a thread pool.
37
42
  */
@@ -1,4 +1,3 @@
1
-
2
1
  /**
3
2
  * Copyright (c) 2016 Tino Reichardt
4
3
  * All rights reserved.
@@ -12,16 +12,19 @@
12
12
  /*-*************************************
13
13
  * Dependencies
14
14
  ***************************************/
15
- #include <stdlib.h> /* malloc */
15
+ #include <stdlib.h> /* malloc, calloc, free */
16
+ #include <string.h> /* memset */
16
17
  #include "error_private.h"
17
18
  #define ZSTD_STATIC_LINKING_ONLY
18
- #include "zstd.h" /* declaration of ZSTD_isError, ZSTD_getErrorName, ZSTD_getErrorCode, ZSTD_getErrorString, ZSTD_versionNumber */
19
+ #include "zstd.h"
19
20
 
20
21
 
21
22
  /*-****************************************
22
23
  * Version
23
24
  ******************************************/
24
- unsigned ZSTD_versionNumber (void) { return ZSTD_VERSION_NUMBER; }
25
+ unsigned ZSTD_versionNumber(void) { return ZSTD_VERSION_NUMBER; }
26
+
27
+ const char* ZSTD_versionString(void) { return ZSTD_VERSION_STRING; }
25
28
 
26
29
 
27
30
  /*-****************************************
@@ -47,27 +50,31 @@ const char* ZSTD_getErrorString(ZSTD_ErrorCode code) { return ERR_getErrorString
47
50
  /*=**************************************************************
48
51
  * Custom allocator
49
52
  ****************************************************************/
50
- /* default uses stdlib */
51
- void* ZSTD_defaultAllocFunction(void* opaque, size_t size)
52
- {
53
- void* address = malloc(size);
54
- (void)opaque;
55
- return address;
56
- }
57
-
58
- void ZSTD_defaultFreeFunction(void* opaque, void* address)
53
+ void* ZSTD_malloc(size_t size, ZSTD_customMem customMem)
59
54
  {
60
- (void)opaque;
61
- free(address);
55
+ if (customMem.customAlloc)
56
+ return customMem.customAlloc(customMem.opaque, size);
57
+ return malloc(size);
62
58
  }
63
59
 
64
- void* ZSTD_malloc(size_t size, ZSTD_customMem customMem)
60
+ void* ZSTD_calloc(size_t size, ZSTD_customMem customMem)
65
61
  {
66
- return customMem.customAlloc(customMem.opaque, size);
62
+ if (customMem.customAlloc) {
63
+ /* calloc implemented as malloc+memset;
64
+ * not as efficient as calloc, but next best guess for custom malloc */
65
+ void* const ptr = customMem.customAlloc(customMem.opaque, size);
66
+ memset(ptr, 0, size);
67
+ return ptr;
68
+ }
69
+ return calloc(1, size);
67
70
  }
68
71
 
69
72
  void ZSTD_free(void* ptr, ZSTD_customMem customMem)
70
73
  {
71
- if (ptr!=NULL)
72
- customMem.customFree(customMem.opaque, ptr);
74
+ if (ptr!=NULL) {
75
+ if (customMem.customFree)
76
+ customMem.customFree(customMem.opaque, ptr);
77
+ else
78
+ free(ptr);
79
+ }
73
80
  }
@@ -19,10 +19,12 @@ extern "C" {
19
19
 
20
20
 
21
21
  /* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */
22
- #if defined(__GNUC__) && (__GNUC__ >= 4)
23
- # define ZSTDERRORLIB_VISIBILITY __attribute__ ((visibility ("default")))
24
- #else
25
- # define ZSTDERRORLIB_VISIBILITY
22
+ #ifndef ZSTDERRORLIB_VISIBILITY
23
+ # if defined(__GNUC__) && (__GNUC__ >= 4)
24
+ # define ZSTDERRORLIB_VISIBILITY __attribute__ ((visibility ("default")))
25
+ # else
26
+ # define ZSTDERRORLIB_VISIBILITY
27
+ # endif
26
28
  #endif
27
29
  #if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1)
28
30
  # define ZSTDERRORLIB_API __declspec(dllexport) ZSTDERRORLIB_VISIBILITY
@@ -33,8 +35,11 @@ extern "C" {
33
35
  #endif
34
36
 
35
37
  /*-****************************************
36
- * error codes list
37
- ******************************************/
38
+ * error codes list
39
+ * note : this API is still considered unstable
40
+ * it should not be used with a dynamic library
41
+ * only static linking is allowed
42
+ ******************************************/
38
43
  typedef enum {
39
44
  ZSTD_error_no_error,
40
45
  ZSTD_error_GENERIC,
@@ -45,6 +50,7 @@ typedef enum {
45
50
  ZSTD_error_frameParameter_unsupportedBy32bits,
46
51
  ZSTD_error_frameParameter_windowTooLarge,
47
52
  ZSTD_error_compressionParameter_unsupported,
53
+ ZSTD_error_compressionParameter_outOfBound,
48
54
  ZSTD_error_init_missing,
49
55
  ZSTD_error_memory_allocation,
50
56
  ZSTD_error_stage_wrong,
@@ -58,12 +64,14 @@ typedef enum {
58
64
  ZSTD_error_dictionary_corrupted,
59
65
  ZSTD_error_dictionary_wrong,
60
66
  ZSTD_error_dictionaryCreation_failed,
67
+ ZSTD_error_frameIndex_tooLarge,
68
+ ZSTD_error_seekableIO,
61
69
  ZSTD_error_maxCode
62
70
  } ZSTD_ErrorCode;
63
71
 
64
72
  /*! ZSTD_getErrorCode() :
65
73
  convert a `size_t` function result into a `ZSTD_ErrorCode` enum type,
66
- which can be used to compare directly with enum list published into "error_public.h" */
74
+ which can be used to compare with enum list published above */
67
75
  ZSTDERRORLIB_API ZSTD_ErrorCode ZSTD_getErrorCode(size_t functionResult);
68
76
  ZSTDERRORLIB_API const char* ZSTD_getErrorString(ZSTD_ErrorCode code);
69
77
 
@@ -18,6 +18,7 @@
18
18
  # include <intrin.h> /* For Visual 2005 */
19
19
  # pragma warning(disable : 4100) /* disable: C4100: unreferenced formal parameter */
20
20
  # pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */
21
+ # pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */
21
22
  # pragma warning(disable : 4324) /* disable: C4324: padded structure */
22
23
  #else
23
24
  # if defined (__cplusplus) || defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */
@@ -50,9 +51,42 @@
50
51
  #define ZSTD_STATIC_LINKING_ONLY
51
52
  #include "zstd.h"
52
53
  #ifndef XXH_STATIC_LINKING_ONLY
53
- # define XXH_STATIC_LINKING_ONLY /* XXH64_state_t */
54
+ # define XXH_STATIC_LINKING_ONLY /* XXH64_state_t */
55
+ #endif
56
+ #include "xxhash.h" /* XXH_reset, update, digest */
57
+
58
+
59
+ /*-*************************************
60
+ * Debug
61
+ ***************************************/
62
+ #if defined(ZSTD_DEBUG) && (ZSTD_DEBUG>=1)
63
+ # include <assert.h>
64
+ #else
65
+ # ifndef assert
66
+ # define assert(condition) ((void)0)
67
+ # endif
68
+ #endif
69
+
70
+ #define ZSTD_STATIC_ASSERT(c) { enum { ZSTD_static_assert = 1/(int)(!!(c)) }; }
71
+
72
+ #if defined(ZSTD_DEBUG) && (ZSTD_DEBUG>=2)
73
+ # include <stdio.h>
74
+ /* recommended values for ZSTD_DEBUG display levels :
75
+ * 1 : no display, enables assert() only
76
+ * 2 : reserved for currently active debugging path
77
+ * 3 : events once per object lifetime (CCtx, CDict)
78
+ * 4 : events once per frame
79
+ * 5 : events once per block
80
+ * 6 : events once per sequence (*very* verbose) */
81
+ # define DEBUGLOG(l, ...) { \
82
+ if (l<=ZSTD_DEBUG) { \
83
+ fprintf(stderr, __FILE__ ": "); \
84
+ fprintf(stderr, __VA_ARGS__); \
85
+ fprintf(stderr, " \n"); \
86
+ } }
87
+ #else
88
+ # define DEBUGLOG(l, ...) {} /* disabled */
54
89
  #endif
55
- #include "xxhash.h" /* XXH_reset, update, digest */
56
90
 
57
91
 
58
92
  /*-*************************************
@@ -70,7 +104,6 @@
70
104
  * Common constants
71
105
  ***************************************/
72
106
  #define ZSTD_OPT_NUM (1<<12)
73
- #define ZSTD_DICT_MAGIC 0xEC30A437 /* v0.7+ */
74
107
 
75
108
  #define ZSTD_REP_NUM 3 /* number of repcodes */
76
109
  #define ZSTD_REP_CHECK (ZSTD_REP_NUM) /* number of repcodes to check by the optimal parser */
@@ -235,15 +268,10 @@ typedef struct {
235
268
 
236
269
  const seqStore_t* ZSTD_getSeqStore(const ZSTD_CCtx* ctx);
237
270
  void ZSTD_seqToCodes(const seqStore_t* seqStorePtr);
238
- int ZSTD_isSkipFrame(ZSTD_DCtx* dctx);
239
271
 
240
272
  /* custom memory allocation functions */
241
- void* ZSTD_defaultAllocFunction(void* opaque, size_t size);
242
- void ZSTD_defaultFreeFunction(void* opaque, void* address);
243
- #ifndef ZSTD_DLL_IMPORT
244
- static const ZSTD_customMem defaultCustomMem = { ZSTD_defaultAllocFunction, ZSTD_defaultFreeFunction, NULL };
245
- #endif
246
273
  void* ZSTD_malloc(size_t size, ZSTD_customMem customMem);
274
+ void* ZSTD_calloc(size_t size, ZSTD_customMem customMem);
247
275
  void ZSTD_free(void* ptr, ZSTD_customMem customMem);
248
276
 
249
277
 
@@ -281,4 +309,26 @@ MEM_STATIC U32 ZSTD_highbit32(U32 val)
281
309
  void ZSTD_invalidateRepCodes(ZSTD_CCtx* cctx);
282
310
 
283
311
 
312
+ /*! ZSTD_initCStream_internal() :
313
+ * Private use only. Init streaming operation.
314
+ * expects params to be valid.
315
+ * must receive dict, or cdict, or none, but not both.
316
+ * @return : 0, or an error code */
317
+ size_t ZSTD_initCStream_internal(ZSTD_CStream* zcs,
318
+ const void* dict, size_t dictSize,
319
+ const ZSTD_CDict* cdict,
320
+ ZSTD_parameters params, unsigned long long pledgedSrcSize);
321
+
322
+ /*! ZSTD_compressStream_generic() :
323
+ * Private use only. To be called from zstdmt_compress.c in single-thread mode. */
324
+ size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs,
325
+ ZSTD_outBuffer* output,
326
+ ZSTD_inBuffer* input,
327
+ ZSTD_EndDirective const flushMode);
328
+
329
+ /*! ZSTD_getParamsFromCDict() :
330
+ * as the name implies */
331
+ ZSTD_parameters ZSTD_getParamsFromCDict(const ZSTD_CDict* cdict);
332
+
333
+
284
334
  #endif /* ZSTD_CCOMMON_H_MODULE */