Yann Collet
357c648c3f
changed a few variable names
...
to unify naming convention
2018-06-04 17:10:50 -07:00
Yann Collet
2108decb41
Fixed a nasty corruption bug
...
recently introduce into the new dictionary mode.
The bug could be reproduced with this command :
./zstreamtest -v --opaqueapi --no-big-tests -s4092 -t639
error was in function ZSTD_count_2segments() :
the beginning of the 2nd segment corresponds to prefixStart
and not the beginning of the current block (istart == src).
This would result in comparing the wrong byte.
2018-06-01 18:54:34 -07:00
W. Felix Handte
f86796639e
Remove Incorrect and Extraneous Repcode Bounds Check
2018-05-31 17:02:29 -04:00
W. Felix Handte
5b292b5685
Check Long + 1 Matches in Both Prefix and Dict in Bothe Short Match Paths
2018-05-25 13:13:57 -04:00
W. Felix Handte
88b733b380
Interleave Prefix and Dict Searches
2018-05-25 13:13:57 -04:00
W. Felix Handte
1850025156
Refactor ZSTD_dfast to Use `goto`s
2018-05-25 13:13:57 -04:00
W. Felix Handte
43606f9c83
... When I Said "HashTable", I Meant "ChainTable"
2018-05-25 13:13:28 -04:00
W. Felix Handte
ec7efe88f5
Fix Off-By-One Error
2018-05-25 13:13:28 -04:00
W. Felix Handte
2bfe43267e
Disallow Too-Long Repcodes When Using an Attached Dict
2018-05-25 13:13:28 -04:00
W. Felix Handte
b97ad3f457
Port Changes Made to ZSTD_fast to ZSTD_dfast
2018-05-25 13:13:28 -04:00
W. Felix Handte
2313cca1b7
Implement Second Repcode Check
2018-05-25 13:13:28 -04:00
W. Felix Handte
0998f10813
Implement First Repcode Check
2018-05-25 13:13:28 -04:00
W. Felix Handte
50c5b2bb90
Find Dict Hash Table Matches
2018-05-25 13:13:28 -04:00
W. Felix Handte
7a25f7ef5b
Existing Repcode Check Only Applies to noDict Case
2018-05-25 13:13:28 -04:00
W. Felix Handte
8b241da4df
Properly Initialize Repcode Values
2018-05-25 13:13:28 -04:00
W. Felix Handte
7097a03749
Add Necessary Dict Variables
2018-05-25 13:13:28 -04:00
W. Felix Handte
aacbbf4f9a
Rename 'lowest' to 'localLowest' to Prepare to Introduce Dict Indices
2018-05-25 13:13:28 -04:00
W. Felix Handte
c10d1b4011
Skeleton for In-Place Impl for ZSTD_dfast
2018-05-25 13:13:28 -04:00
Yann Collet
ad4524d605
fix ZSTD_compressBlock() associated with CDict
...
reported by @let-def.
It's actually a bug in ZSTD_compressBegin_usingCDict()
which would pass a wrong pledgedSrcSize value (0 instead of ZSTD_CONTENTSIZE_UNKNOWN)
resulting in wrong window size, resulting in downsized seqStore,
resulting in segfault when writing into the seqStore later in the process.
Added a test in fuzzer to cover this use case (fails before the patch).
2018-05-07 12:54:13 -07:00
Nick Terrell
295ab0dbfa
Only load extra table positions for CDicts
...
Zstdmt uses prefixes to load the overlap between segments. Loading extra
positions makes compression non-deterministic, depending on the previous
job the context was used for. Since loading extra position takes extra
time as well, only do it when creating a `ZSTD_CDict`.
Fixes #1077 .
2018-04-02 14:41:30 -07:00
Nick Terrell
7e5e226cbf
Split the window state into substructure
2018-02-26 13:29:57 -08:00
Yann Collet
5188749e1c
ensure compression parameters are updated when only compression level is changed
2018-02-02 16:31:20 -08:00
Nick Terrell
887cd4e35e
Split ZSTD_CCtx into smaller sub-structures
2018-01-16 11:17:50 -08:00
Nick Terrell
9a211d1f05
Load more dictionary positions into table if empty
...
If the hash table is empty load positions into the hash table
that we would otherwise skip.
| Level | Data Set | Improvement |
|-------|--------------|-------------|
| 1 | github | 0.44% |
| 1 | hg-changelog | 0.13% |
| 1 | hg-commands | 1.28% |
| 1 | hg-manifest | 0.70% |
| 3 | github | 0.74% |
| 3 | hg-changelog | 0.87% |
| 3 | hg-commands | 1.74% |
| 3 | hg-manifest | 0.23% |
2018-01-12 16:17:22 -08:00
Yann Collet
ee441d5d2b
renamed zstd_compress.h into zstd_compress_internal.h
...
to emphasize the fact that all definitions it contains
must remain private, accross lib/compress modules.
2017-11-07 16:15:23 -08:00
Stella Lau
eb3327c10a
Merge branch 'dev' of https://github.com/facebook/zstd into ldm-mergeDev
2017-09-11 15:00:01 -07:00
Yann Collet
3128e03be6
updated license header
...
to clarify dual-license meaning as "or"
2017-09-08 00:09:23 -07:00
Stella Lau
eeff55dfa8
Merge remote-tracking branch 'upstream/dev' into ldm-mergeDev
2017-09-06 15:56:32 -07:00
Nick Terrell
721726d688
Split parsers out of zstd_compress.c
2017-09-05 17:10:25 -07:00