zstd/lib/compress
Nick Terrell 48a6427d22 [libzstd] Fix ZSTD_compress2() for multithreaded compression
`ZSTD_compress2()` wouldn't wait for multithreaded compression to
finish. We didn't find this because ZSTDMT will block when it can
compress all in one go, but it can't do that if it doesn't have enough
output space, or if `ZSTD_c_rsyncable` is enabled.

Since we will already sometimes block when using `ZSTD_e_end`, I've
changed `ZSTD_e_end` and `ZSTD_e_flush` to guarantee maximum forward
progress. This simplifies the API, and helps users avoid the easy bug
that was made in `ZSTD_compress2()`

* Found by the libfuzzer fuzzers.
* Added a test case that catches the problem.
* I will make the fuzzers sometimes allocate less than
  `ZSTD_compressBound()` output space.
2019-04-09 16:24:17 -07:00
..
fse_compress.c Merge pull request #1470 from facebook/U32 2018-12-23 12:35:39 -08:00
hist.c refactor HUF_compress_internal for clarity 2018-10-26 13:21:37 -07:00
hist.h refactor HUF_compress_internal for clarity 2018-10-26 13:21:37 -07:00
huf_compress.c fix confusion between unsigned <-> U32 2018-12-21 18:09:41 -08:00
zstd_compress.c [libzstd] Fix ZSTD_compress2() for multithreaded compression 2019-04-09 16:24:17 -07:00
zstd_compress_internal.h [lib] Allow ZSTD_CCtx_loadDictionary() to be called before parameters are set 2019-03-21 16:13:53 -07:00
zstd_double_fast.c changed searchLength into minMatch 2018-11-20 14:56:07 -08:00
zstd_double_fast.h Also Remove CParams from Table Filling Functions' Args 2018-09-28 17:10:42 -07:00
zstd_fast.c [libzstd] Speed up single segment zstd_fast by 5% 2019-04-02 19:02:50 -07:00
zstd_fast.h Also Remove CParams from Table Filling Functions' Args 2018-09-28 17:10:42 -07:00
zstd_lazy.c changed searchLength into minMatch 2018-11-20 14:56:07 -08:00
zstd_lazy.h Also Remove CParams from Table Filling Functions' Args 2018-09-28 17:10:42 -07:00
zstd_ldm.c changed ZSTD_c_compressionStrategy into ZSTD_c_strategy 2018-12-06 15:00:52 -08:00
zstd_ldm.h changed hashEveryLog into hashRateLog 2018-11-21 14:36:57 -08:00
zstd_opt.c [libzstd] Handle uncompressed literals 2019-02-15 14:58:11 -08:00
zstd_opt.h changed ZSTD_c_compressionStrategy into ZSTD_c_strategy 2018-12-06 15:00:52 -08:00
zstdmt_compress.c Wrap the new advanced api completely 2019-03-21 10:54:40 -07:00
zstdmt_compress.h [libzstd] Remove ZSTDMT from the shared object 2019-04-07 18:47:52 -07:00