zstd-ruby 1.4.5.0 → 1.5.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/README.md +78 -5
  4. data/Rakefile +8 -2
  5. data/ext/zstdruby/common.h +15 -0
  6. data/ext/zstdruby/extconf.rb +3 -2
  7. data/ext/zstdruby/libzstd/common/allocations.h +55 -0
  8. data/ext/zstdruby/libzstd/common/bits.h +200 -0
  9. data/ext/zstdruby/libzstd/common/bitstream.h +45 -62
  10. data/ext/zstdruby/libzstd/common/compiler.h +205 -22
  11. data/ext/zstdruby/libzstd/common/cpu.h +1 -3
  12. data/ext/zstdruby/libzstd/common/debug.c +1 -1
  13. data/ext/zstdruby/libzstd/common/debug.h +12 -19
  14. data/ext/zstdruby/libzstd/common/entropy_common.c +172 -48
  15. data/ext/zstdruby/libzstd/common/error_private.c +10 -2
  16. data/ext/zstdruby/libzstd/common/error_private.h +82 -3
  17. data/ext/zstdruby/libzstd/common/fse.h +37 -86
  18. data/ext/zstdruby/libzstd/common/fse_decompress.c +117 -92
  19. data/ext/zstdruby/libzstd/common/huf.h +99 -166
  20. data/ext/zstdruby/libzstd/common/mem.h +124 -142
  21. data/ext/zstdruby/libzstd/common/pool.c +54 -27
  22. data/ext/zstdruby/libzstd/common/pool.h +10 -4
  23. data/ext/zstdruby/libzstd/common/portability_macros.h +156 -0
  24. data/ext/zstdruby/libzstd/common/threading.c +74 -19
  25. data/ext/zstdruby/libzstd/common/threading.h +5 -10
  26. data/ext/zstdruby/libzstd/common/xxhash.c +7 -847
  27. data/ext/zstdruby/libzstd/common/xxhash.h +5568 -167
  28. data/ext/zstdruby/libzstd/common/zstd_common.c +2 -37
  29. data/ext/zstdruby/libzstd/common/zstd_deps.h +111 -0
  30. data/ext/zstdruby/libzstd/common/zstd_internal.h +132 -187
  31. data/ext/zstdruby/libzstd/common/zstd_trace.h +163 -0
  32. data/ext/zstdruby/libzstd/compress/clevels.h +134 -0
  33. data/ext/zstdruby/libzstd/compress/fse_compress.c +83 -157
  34. data/ext/zstdruby/libzstd/compress/hist.c +27 -29
  35. data/ext/zstdruby/libzstd/compress/hist.h +2 -2
  36. data/ext/zstdruby/libzstd/compress/huf_compress.c +916 -279
  37. data/ext/zstdruby/libzstd/compress/zstd_compress.c +3773 -1019
  38. data/ext/zstdruby/libzstd/compress/zstd_compress_internal.h +610 -203
  39. data/ext/zstdruby/libzstd/compress/zstd_compress_literals.c +119 -42
  40. data/ext/zstdruby/libzstd/compress/zstd_compress_literals.h +16 -6
  41. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.c +42 -19
  42. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.h +1 -1
  43. data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.c +49 -317
  44. data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.h +1 -1
  45. data/ext/zstdruby/libzstd/compress/zstd_cwksp.h +320 -103
  46. data/ext/zstdruby/libzstd/compress/zstd_double_fast.c +388 -151
  47. data/ext/zstdruby/libzstd/compress/zstd_double_fast.h +3 -2
  48. data/ext/zstdruby/libzstd/compress/zstd_fast.c +729 -265
  49. data/ext/zstdruby/libzstd/compress/zstd_fast.h +3 -2
  50. data/ext/zstdruby/libzstd/compress/zstd_lazy.c +1270 -251
  51. data/ext/zstdruby/libzstd/compress/zstd_lazy.h +61 -1
  52. data/ext/zstdruby/libzstd/compress/zstd_ldm.c +324 -219
  53. data/ext/zstdruby/libzstd/compress/zstd_ldm.h +9 -2
  54. data/ext/zstdruby/libzstd/compress/zstd_ldm_geartab.h +106 -0
  55. data/ext/zstdruby/libzstd/compress/zstd_opt.c +481 -209
  56. data/ext/zstdruby/libzstd/compress/zstd_opt.h +1 -1
  57. data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +181 -457
  58. data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +34 -113
  59. data/ext/zstdruby/libzstd/decompress/huf_decompress.c +1199 -565
  60. data/ext/zstdruby/libzstd/decompress/huf_decompress_amd64.S +576 -0
  61. data/ext/zstdruby/libzstd/decompress/zstd_ddict.c +12 -12
  62. data/ext/zstdruby/libzstd/decompress/zstd_ddict.h +2 -2
  63. data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +627 -157
  64. data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.c +1086 -326
  65. data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.h +19 -5
  66. data/ext/zstdruby/libzstd/decompress/zstd_decompress_internal.h +62 -13
  67. data/ext/zstdruby/libzstd/dictBuilder/cover.c +73 -52
  68. data/ext/zstdruby/libzstd/dictBuilder/cover.h +7 -6
  69. data/ext/zstdruby/libzstd/dictBuilder/divsufsort.c +1 -1
  70. data/ext/zstdruby/libzstd/dictBuilder/fastcover.c +44 -35
  71. data/ext/zstdruby/libzstd/dictBuilder/zdict.c +103 -111
  72. data/ext/zstdruby/libzstd/{dictBuilder/zdict.h → zdict.h} +203 -34
  73. data/ext/zstdruby/libzstd/zstd.h +1217 -287
  74. data/ext/zstdruby/libzstd/{common/zstd_errors.h → zstd_errors.h} +28 -8
  75. data/ext/zstdruby/main.c +20 -0
  76. data/ext/zstdruby/skippable_frame.c +63 -0
  77. data/ext/zstdruby/streaming_compress.c +177 -0
  78. data/ext/zstdruby/streaming_compress.h +5 -0
  79. data/ext/zstdruby/streaming_decompress.c +123 -0
  80. data/ext/zstdruby/zstdruby.c +114 -32
  81. data/lib/zstd-ruby/version.rb +1 -1
  82. data/lib/zstd-ruby.rb +0 -1
  83. data/zstd-ruby.gemspec +1 -1
  84. metadata +19 -36
  85. data/.travis.yml +0 -14
  86. data/ext/zstdruby/libzstd/.gitignore +0 -3
  87. data/ext/zstdruby/libzstd/BUCK +0 -234
  88. data/ext/zstdruby/libzstd/Makefile +0 -354
  89. data/ext/zstdruby/libzstd/README.md +0 -179
  90. data/ext/zstdruby/libzstd/deprecated/zbuff.h +0 -214
  91. data/ext/zstdruby/libzstd/deprecated/zbuff_common.c +0 -26
  92. data/ext/zstdruby/libzstd/deprecated/zbuff_compress.c +0 -147
  93. data/ext/zstdruby/libzstd/deprecated/zbuff_decompress.c +0 -75
  94. data/ext/zstdruby/libzstd/dll/example/Makefile +0 -48
  95. data/ext/zstdruby/libzstd/dll/example/README.md +0 -69
  96. data/ext/zstdruby/libzstd/dll/example/build_package.bat +0 -20
  97. data/ext/zstdruby/libzstd/dll/example/fullbench-dll.sln +0 -25
  98. data/ext/zstdruby/libzstd/dll/example/fullbench-dll.vcxproj +0 -181
  99. data/ext/zstdruby/libzstd/legacy/zstd_legacy.h +0 -415
  100. data/ext/zstdruby/libzstd/legacy/zstd_v01.c +0 -2158
  101. data/ext/zstdruby/libzstd/legacy/zstd_v01.h +0 -94
  102. data/ext/zstdruby/libzstd/legacy/zstd_v02.c +0 -3518
  103. data/ext/zstdruby/libzstd/legacy/zstd_v02.h +0 -93
  104. data/ext/zstdruby/libzstd/legacy/zstd_v03.c +0 -3160
  105. data/ext/zstdruby/libzstd/legacy/zstd_v03.h +0 -93
  106. data/ext/zstdruby/libzstd/legacy/zstd_v04.c +0 -3647
  107. data/ext/zstdruby/libzstd/legacy/zstd_v04.h +0 -142
  108. data/ext/zstdruby/libzstd/legacy/zstd_v05.c +0 -4050
  109. data/ext/zstdruby/libzstd/legacy/zstd_v05.h +0 -162
  110. data/ext/zstdruby/libzstd/legacy/zstd_v06.c +0 -4154
  111. data/ext/zstdruby/libzstd/legacy/zstd_v06.h +0 -172
  112. data/ext/zstdruby/libzstd/legacy/zstd_v07.c +0 -4541
  113. data/ext/zstdruby/libzstd/legacy/zstd_v07.h +0 -187
  114. data/ext/zstdruby/libzstd/libzstd.pc.in +0 -15
  115. data/ext/zstdruby/zstdruby.h +0 -6
@@ -1,181 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
- <ItemGroup Label="ProjectConfigurations">
4
- <ProjectConfiguration Include="Debug|Win32">
5
- <Configuration>Debug</Configuration>
6
- <Platform>Win32</Platform>
7
- </ProjectConfiguration>
8
- <ProjectConfiguration Include="Debug|x64">
9
- <Configuration>Debug</Configuration>
10
- <Platform>x64</Platform>
11
- </ProjectConfiguration>
12
- <ProjectConfiguration Include="Release|Win32">
13
- <Configuration>Release</Configuration>
14
- <Platform>Win32</Platform>
15
- </ProjectConfiguration>
16
- <ProjectConfiguration Include="Release|x64">
17
- <Configuration>Release</Configuration>
18
- <Platform>x64</Platform>
19
- </ProjectConfiguration>
20
- </ItemGroup>
21
- <PropertyGroup Label="Globals">
22
- <ProjectGuid>{00000000-1CC8-4FD7-9281-6B8DBB9D3DF8}</ProjectGuid>
23
- <Keyword>Win32Proj</Keyword>
24
- <RootNamespace>fullbench-dll</RootNamespace>
25
- <OutDir>$(SolutionDir)bin\$(Platform)_$(Configuration)\</OutDir>
26
- <IntDir>$(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\</IntDir>
27
- </PropertyGroup>
28
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
29
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
30
- <ConfigurationType>Application</ConfigurationType>
31
- <UseDebugLibraries>true</UseDebugLibraries>
32
- <CharacterSet>MultiByte</CharacterSet>
33
- </PropertyGroup>
34
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
35
- <ConfigurationType>Application</ConfigurationType>
36
- <UseDebugLibraries>true</UseDebugLibraries>
37
- <CharacterSet>MultiByte</CharacterSet>
38
- </PropertyGroup>
39
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
40
- <ConfigurationType>Application</ConfigurationType>
41
- <UseDebugLibraries>false</UseDebugLibraries>
42
- <WholeProgramOptimization>true</WholeProgramOptimization>
43
- <CharacterSet>MultiByte</CharacterSet>
44
- </PropertyGroup>
45
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
46
- <ConfigurationType>Application</ConfigurationType>
47
- <UseDebugLibraries>false</UseDebugLibraries>
48
- <WholeProgramOptimization>true</WholeProgramOptimization>
49
- <CharacterSet>MultiByte</CharacterSet>
50
- </PropertyGroup>
51
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
52
- <ImportGroup Label="ExtensionSettings">
53
- </ImportGroup>
54
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
55
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
56
- </ImportGroup>
57
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
58
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
59
- </ImportGroup>
60
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
61
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
62
- </ImportGroup>
63
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
64
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
65
- </ImportGroup>
66
- <PropertyGroup Label="UserMacros" />
67
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
68
- <LinkIncremental>true</LinkIncremental>
69
- <IncludePath>$(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath);</IncludePath>
70
- <RunCodeAnalysis>false</RunCodeAnalysis>
71
- </PropertyGroup>
72
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
73
- <LinkIncremental>true</LinkIncremental>
74
- <IncludePath>$(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath);</IncludePath>
75
- <RunCodeAnalysis>false</RunCodeAnalysis>
76
- </PropertyGroup>
77
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
78
- <LinkIncremental>false</LinkIncremental>
79
- <IncludePath>$(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath);</IncludePath>
80
- <RunCodeAnalysis>false</RunCodeAnalysis>
81
- </PropertyGroup>
82
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
83
- <LinkIncremental>false</LinkIncremental>
84
- <IncludePath>$(IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(UniversalCRT_IncludePath);</IncludePath>
85
- <RunCodeAnalysis>false</RunCodeAnalysis>
86
- </PropertyGroup>
87
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
88
- <ClCompile>
89
- <PrecompiledHeader>
90
- </PrecompiledHeader>
91
- <WarningLevel>Level4</WarningLevel>
92
- <Optimization>Disabled</Optimization>
93
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
94
- <TreatWarningAsError>true</TreatWarningAsError>
95
- <EnablePREfast>false</EnablePREfast>
96
- <AdditionalIncludeDirectories>..\include</AdditionalIncludeDirectories>
97
- </ClCompile>
98
- <Link>
99
- <SubSystem>Console</SubSystem>
100
- <GenerateDebugInformation>true</GenerateDebugInformation>
101
- <AdditionalLibraryDirectories>$(SolutionDir)..\dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
102
- <AdditionalDependencies>libzstd.lib;%(AdditionalDependencies)</AdditionalDependencies>
103
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
104
- </Link>
105
- </ItemDefinitionGroup>
106
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
107
- <ClCompile>
108
- <PrecompiledHeader>
109
- </PrecompiledHeader>
110
- <WarningLevel>Level4</WarningLevel>
111
- <Optimization>Disabled</Optimization>
112
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
113
- <TreatWarningAsError>true</TreatWarningAsError>
114
- <EnablePREfast>false</EnablePREfast>
115
- <AdditionalIncludeDirectories>..\include</AdditionalIncludeDirectories>
116
- </ClCompile>
117
- <Link>
118
- <SubSystem>Console</SubSystem>
119
- <GenerateDebugInformation>true</GenerateDebugInformation>
120
- <AdditionalLibraryDirectories>$(SolutionDir)..\dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
121
- <AdditionalDependencies>libzstd.lib;%(AdditionalDependencies)</AdditionalDependencies>
122
- </Link>
123
- </ItemDefinitionGroup>
124
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
125
- <ClCompile>
126
- <WarningLevel>Level4</WarningLevel>
127
- <PrecompiledHeader>
128
- </PrecompiledHeader>
129
- <Optimization>MaxSpeed</Optimization>
130
- <FunctionLevelLinking>true</FunctionLevelLinking>
131
- <IntrinsicFunctions>true</IntrinsicFunctions>
132
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
133
- <EnablePREfast>false</EnablePREfast>
134
- <AdditionalIncludeDirectories>..\include</AdditionalIncludeDirectories>
135
- <TreatWarningAsError>false</TreatWarningAsError>
136
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
137
- </ClCompile>
138
- <Link>
139
- <SubSystem>Console</SubSystem>
140
- <GenerateDebugInformation>true</GenerateDebugInformation>
141
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
142
- <OptimizeReferences>true</OptimizeReferences>
143
- <AdditionalLibraryDirectories>$(SolutionDir)..\dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
144
- <AdditionalDependencies>libzstd.lib;%(AdditionalDependencies)</AdditionalDependencies>
145
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
146
- </Link>
147
- </ItemDefinitionGroup>
148
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
149
- <ClCompile>
150
- <WarningLevel>Level4</WarningLevel>
151
- <PrecompiledHeader>
152
- </PrecompiledHeader>
153
- <Optimization>MaxSpeed</Optimization>
154
- <FunctionLevelLinking>true</FunctionLevelLinking>
155
- <IntrinsicFunctions>true</IntrinsicFunctions>
156
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;ZSTD_DLL_IMPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
157
- <TreatWarningAsError>false</TreatWarningAsError>
158
- <EnablePREfast>false</EnablePREfast>
159
- <AdditionalIncludeDirectories>..\include</AdditionalIncludeDirectories>
160
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
161
- </ClCompile>
162
- <Link>
163
- <SubSystem>Console</SubSystem>
164
- <GenerateDebugInformation>true</GenerateDebugInformation>
165
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
166
- <OptimizeReferences>true</OptimizeReferences>
167
- <AdditionalLibraryDirectories>$(SolutionDir)..\dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
168
- <AdditionalDependencies>libzstd.lib;%(AdditionalDependencies)</AdditionalDependencies>
169
- </Link>
170
- </ItemDefinitionGroup>
171
- <ItemGroup>
172
- <ClCompile Include="datagen.c" />
173
- <ClCompile Include="fullbench.c" />
174
- </ItemGroup>
175
- <ItemGroup>
176
- <ClInclude Include="..\include\zstd.h" />
177
- </ItemGroup>
178
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
179
- <ImportGroup Label="ExtensionTargets">
180
- </ImportGroup>
181
- </Project>
@@ -1,415 +0,0 @@
1
- /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
3
- * All rights reserved.
4
- *
5
- * This source code is licensed under both the BSD-style license (found in the
6
- * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
- * in the COPYING file in the root directory of this source tree).
8
- * You may select, at your option, one of the above-listed licenses.
9
- */
10
-
11
- #ifndef ZSTD_LEGACY_H
12
- #define ZSTD_LEGACY_H
13
-
14
- #if defined (__cplusplus)
15
- extern "C" {
16
- #endif
17
-
18
- /* *************************************
19
- * Includes
20
- ***************************************/
21
- #include "../common/mem.h" /* MEM_STATIC */
22
- #include "../common/error_private.h" /* ERROR */
23
- #include "../common/zstd_internal.h" /* ZSTD_inBuffer, ZSTD_outBuffer, ZSTD_frameSizeInfo */
24
-
25
- #if !defined (ZSTD_LEGACY_SUPPORT) || (ZSTD_LEGACY_SUPPORT == 0)
26
- # undef ZSTD_LEGACY_SUPPORT
27
- # define ZSTD_LEGACY_SUPPORT 8
28
- #endif
29
-
30
- #if (ZSTD_LEGACY_SUPPORT <= 1)
31
- # include "zstd_v01.h"
32
- #endif
33
- #if (ZSTD_LEGACY_SUPPORT <= 2)
34
- # include "zstd_v02.h"
35
- #endif
36
- #if (ZSTD_LEGACY_SUPPORT <= 3)
37
- # include "zstd_v03.h"
38
- #endif
39
- #if (ZSTD_LEGACY_SUPPORT <= 4)
40
- # include "zstd_v04.h"
41
- #endif
42
- #if (ZSTD_LEGACY_SUPPORT <= 5)
43
- # include "zstd_v05.h"
44
- #endif
45
- #if (ZSTD_LEGACY_SUPPORT <= 6)
46
- # include "zstd_v06.h"
47
- #endif
48
- #if (ZSTD_LEGACY_SUPPORT <= 7)
49
- # include "zstd_v07.h"
50
- #endif
51
-
52
- /** ZSTD_isLegacy() :
53
- @return : > 0 if supported by legacy decoder. 0 otherwise.
54
- return value is the version.
55
- */
56
- MEM_STATIC unsigned ZSTD_isLegacy(const void* src, size_t srcSize)
57
- {
58
- U32 magicNumberLE;
59
- if (srcSize<4) return 0;
60
- magicNumberLE = MEM_readLE32(src);
61
- switch(magicNumberLE)
62
- {
63
- #if (ZSTD_LEGACY_SUPPORT <= 1)
64
- case ZSTDv01_magicNumberLE:return 1;
65
- #endif
66
- #if (ZSTD_LEGACY_SUPPORT <= 2)
67
- case ZSTDv02_magicNumber : return 2;
68
- #endif
69
- #if (ZSTD_LEGACY_SUPPORT <= 3)
70
- case ZSTDv03_magicNumber : return 3;
71
- #endif
72
- #if (ZSTD_LEGACY_SUPPORT <= 4)
73
- case ZSTDv04_magicNumber : return 4;
74
- #endif
75
- #if (ZSTD_LEGACY_SUPPORT <= 5)
76
- case ZSTDv05_MAGICNUMBER : return 5;
77
- #endif
78
- #if (ZSTD_LEGACY_SUPPORT <= 6)
79
- case ZSTDv06_MAGICNUMBER : return 6;
80
- #endif
81
- #if (ZSTD_LEGACY_SUPPORT <= 7)
82
- case ZSTDv07_MAGICNUMBER : return 7;
83
- #endif
84
- default : return 0;
85
- }
86
- }
87
-
88
-
89
- MEM_STATIC unsigned long long ZSTD_getDecompressedSize_legacy(const void* src, size_t srcSize)
90
- {
91
- U32 const version = ZSTD_isLegacy(src, srcSize);
92
- if (version < 5) return 0; /* no decompressed size in frame header, or not a legacy format */
93
- #if (ZSTD_LEGACY_SUPPORT <= 5)
94
- if (version==5) {
95
- ZSTDv05_parameters fParams;
96
- size_t const frResult = ZSTDv05_getFrameParams(&fParams, src, srcSize);
97
- if (frResult != 0) return 0;
98
- return fParams.srcSize;
99
- }
100
- #endif
101
- #if (ZSTD_LEGACY_SUPPORT <= 6)
102
- if (version==6) {
103
- ZSTDv06_frameParams fParams;
104
- size_t const frResult = ZSTDv06_getFrameParams(&fParams, src, srcSize);
105
- if (frResult != 0) return 0;
106
- return fParams.frameContentSize;
107
- }
108
- #endif
109
- #if (ZSTD_LEGACY_SUPPORT <= 7)
110
- if (version==7) {
111
- ZSTDv07_frameParams fParams;
112
- size_t const frResult = ZSTDv07_getFrameParams(&fParams, src, srcSize);
113
- if (frResult != 0) return 0;
114
- return fParams.frameContentSize;
115
- }
116
- #endif
117
- return 0; /* should not be possible */
118
- }
119
-
120
-
121
- MEM_STATIC size_t ZSTD_decompressLegacy(
122
- void* dst, size_t dstCapacity,
123
- const void* src, size_t compressedSize,
124
- const void* dict,size_t dictSize)
125
- {
126
- U32 const version = ZSTD_isLegacy(src, compressedSize);
127
- (void)dst; (void)dstCapacity; (void)dict; (void)dictSize; /* unused when ZSTD_LEGACY_SUPPORT >= 8 */
128
- switch(version)
129
- {
130
- #if (ZSTD_LEGACY_SUPPORT <= 1)
131
- case 1 :
132
- return ZSTDv01_decompress(dst, dstCapacity, src, compressedSize);
133
- #endif
134
- #if (ZSTD_LEGACY_SUPPORT <= 2)
135
- case 2 :
136
- return ZSTDv02_decompress(dst, dstCapacity, src, compressedSize);
137
- #endif
138
- #if (ZSTD_LEGACY_SUPPORT <= 3)
139
- case 3 :
140
- return ZSTDv03_decompress(dst, dstCapacity, src, compressedSize);
141
- #endif
142
- #if (ZSTD_LEGACY_SUPPORT <= 4)
143
- case 4 :
144
- return ZSTDv04_decompress(dst, dstCapacity, src, compressedSize);
145
- #endif
146
- #if (ZSTD_LEGACY_SUPPORT <= 5)
147
- case 5 :
148
- { size_t result;
149
- ZSTDv05_DCtx* const zd = ZSTDv05_createDCtx();
150
- if (zd==NULL) return ERROR(memory_allocation);
151
- result = ZSTDv05_decompress_usingDict(zd, dst, dstCapacity, src, compressedSize, dict, dictSize);
152
- ZSTDv05_freeDCtx(zd);
153
- return result;
154
- }
155
- #endif
156
- #if (ZSTD_LEGACY_SUPPORT <= 6)
157
- case 6 :
158
- { size_t result;
159
- ZSTDv06_DCtx* const zd = ZSTDv06_createDCtx();
160
- if (zd==NULL) return ERROR(memory_allocation);
161
- result = ZSTDv06_decompress_usingDict(zd, dst, dstCapacity, src, compressedSize, dict, dictSize);
162
- ZSTDv06_freeDCtx(zd);
163
- return result;
164
- }
165
- #endif
166
- #if (ZSTD_LEGACY_SUPPORT <= 7)
167
- case 7 :
168
- { size_t result;
169
- ZSTDv07_DCtx* const zd = ZSTDv07_createDCtx();
170
- if (zd==NULL) return ERROR(memory_allocation);
171
- result = ZSTDv07_decompress_usingDict(zd, dst, dstCapacity, src, compressedSize, dict, dictSize);
172
- ZSTDv07_freeDCtx(zd);
173
- return result;
174
- }
175
- #endif
176
- default :
177
- return ERROR(prefix_unknown);
178
- }
179
- }
180
-
181
- MEM_STATIC ZSTD_frameSizeInfo ZSTD_findFrameSizeInfoLegacy(const void *src, size_t srcSize)
182
- {
183
- ZSTD_frameSizeInfo frameSizeInfo;
184
- U32 const version = ZSTD_isLegacy(src, srcSize);
185
- switch(version)
186
- {
187
- #if (ZSTD_LEGACY_SUPPORT <= 1)
188
- case 1 :
189
- ZSTDv01_findFrameSizeInfoLegacy(src, srcSize,
190
- &frameSizeInfo.compressedSize,
191
- &frameSizeInfo.decompressedBound);
192
- break;
193
- #endif
194
- #if (ZSTD_LEGACY_SUPPORT <= 2)
195
- case 2 :
196
- ZSTDv02_findFrameSizeInfoLegacy(src, srcSize,
197
- &frameSizeInfo.compressedSize,
198
- &frameSizeInfo.decompressedBound);
199
- break;
200
- #endif
201
- #if (ZSTD_LEGACY_SUPPORT <= 3)
202
- case 3 :
203
- ZSTDv03_findFrameSizeInfoLegacy(src, srcSize,
204
- &frameSizeInfo.compressedSize,
205
- &frameSizeInfo.decompressedBound);
206
- break;
207
- #endif
208
- #if (ZSTD_LEGACY_SUPPORT <= 4)
209
- case 4 :
210
- ZSTDv04_findFrameSizeInfoLegacy(src, srcSize,
211
- &frameSizeInfo.compressedSize,
212
- &frameSizeInfo.decompressedBound);
213
- break;
214
- #endif
215
- #if (ZSTD_LEGACY_SUPPORT <= 5)
216
- case 5 :
217
- ZSTDv05_findFrameSizeInfoLegacy(src, srcSize,
218
- &frameSizeInfo.compressedSize,
219
- &frameSizeInfo.decompressedBound);
220
- break;
221
- #endif
222
- #if (ZSTD_LEGACY_SUPPORT <= 6)
223
- case 6 :
224
- ZSTDv06_findFrameSizeInfoLegacy(src, srcSize,
225
- &frameSizeInfo.compressedSize,
226
- &frameSizeInfo.decompressedBound);
227
- break;
228
- #endif
229
- #if (ZSTD_LEGACY_SUPPORT <= 7)
230
- case 7 :
231
- ZSTDv07_findFrameSizeInfoLegacy(src, srcSize,
232
- &frameSizeInfo.compressedSize,
233
- &frameSizeInfo.decompressedBound);
234
- break;
235
- #endif
236
- default :
237
- frameSizeInfo.compressedSize = ERROR(prefix_unknown);
238
- frameSizeInfo.decompressedBound = ZSTD_CONTENTSIZE_ERROR;
239
- break;
240
- }
241
- if (!ZSTD_isError(frameSizeInfo.compressedSize) && frameSizeInfo.compressedSize > srcSize) {
242
- frameSizeInfo.compressedSize = ERROR(srcSize_wrong);
243
- frameSizeInfo.decompressedBound = ZSTD_CONTENTSIZE_ERROR;
244
- }
245
- return frameSizeInfo;
246
- }
247
-
248
- MEM_STATIC size_t ZSTD_findFrameCompressedSizeLegacy(const void *src, size_t srcSize)
249
- {
250
- ZSTD_frameSizeInfo frameSizeInfo = ZSTD_findFrameSizeInfoLegacy(src, srcSize);
251
- return frameSizeInfo.compressedSize;
252
- }
253
-
254
- MEM_STATIC size_t ZSTD_freeLegacyStreamContext(void* legacyContext, U32 version)
255
- {
256
- switch(version)
257
- {
258
- default :
259
- case 1 :
260
- case 2 :
261
- case 3 :
262
- (void)legacyContext;
263
- return ERROR(version_unsupported);
264
- #if (ZSTD_LEGACY_SUPPORT <= 4)
265
- case 4 : return ZBUFFv04_freeDCtx((ZBUFFv04_DCtx*)legacyContext);
266
- #endif
267
- #if (ZSTD_LEGACY_SUPPORT <= 5)
268
- case 5 : return ZBUFFv05_freeDCtx((ZBUFFv05_DCtx*)legacyContext);
269
- #endif
270
- #if (ZSTD_LEGACY_SUPPORT <= 6)
271
- case 6 : return ZBUFFv06_freeDCtx((ZBUFFv06_DCtx*)legacyContext);
272
- #endif
273
- #if (ZSTD_LEGACY_SUPPORT <= 7)
274
- case 7 : return ZBUFFv07_freeDCtx((ZBUFFv07_DCtx*)legacyContext);
275
- #endif
276
- }
277
- }
278
-
279
-
280
- MEM_STATIC size_t ZSTD_initLegacyStream(void** legacyContext, U32 prevVersion, U32 newVersion,
281
- const void* dict, size_t dictSize)
282
- {
283
- DEBUGLOG(5, "ZSTD_initLegacyStream for v0.%u", newVersion);
284
- if (prevVersion != newVersion) ZSTD_freeLegacyStreamContext(*legacyContext, prevVersion);
285
- switch(newVersion)
286
- {
287
- default :
288
- case 1 :
289
- case 2 :
290
- case 3 :
291
- (void)dict; (void)dictSize;
292
- return 0;
293
- #if (ZSTD_LEGACY_SUPPORT <= 4)
294
- case 4 :
295
- {
296
- ZBUFFv04_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv04_createDCtx() : (ZBUFFv04_DCtx*)*legacyContext;
297
- if (dctx==NULL) return ERROR(memory_allocation);
298
- ZBUFFv04_decompressInit(dctx);
299
- ZBUFFv04_decompressWithDictionary(dctx, dict, dictSize);
300
- *legacyContext = dctx;
301
- return 0;
302
- }
303
- #endif
304
- #if (ZSTD_LEGACY_SUPPORT <= 5)
305
- case 5 :
306
- {
307
- ZBUFFv05_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv05_createDCtx() : (ZBUFFv05_DCtx*)*legacyContext;
308
- if (dctx==NULL) return ERROR(memory_allocation);
309
- ZBUFFv05_decompressInitDictionary(dctx, dict, dictSize);
310
- *legacyContext = dctx;
311
- return 0;
312
- }
313
- #endif
314
- #if (ZSTD_LEGACY_SUPPORT <= 6)
315
- case 6 :
316
- {
317
- ZBUFFv06_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv06_createDCtx() : (ZBUFFv06_DCtx*)*legacyContext;
318
- if (dctx==NULL) return ERROR(memory_allocation);
319
- ZBUFFv06_decompressInitDictionary(dctx, dict, dictSize);
320
- *legacyContext = dctx;
321
- return 0;
322
- }
323
- #endif
324
- #if (ZSTD_LEGACY_SUPPORT <= 7)
325
- case 7 :
326
- {
327
- ZBUFFv07_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv07_createDCtx() : (ZBUFFv07_DCtx*)*legacyContext;
328
- if (dctx==NULL) return ERROR(memory_allocation);
329
- ZBUFFv07_decompressInitDictionary(dctx, dict, dictSize);
330
- *legacyContext = dctx;
331
- return 0;
332
- }
333
- #endif
334
- }
335
- }
336
-
337
-
338
-
339
- MEM_STATIC size_t ZSTD_decompressLegacyStream(void* legacyContext, U32 version,
340
- ZSTD_outBuffer* output, ZSTD_inBuffer* input)
341
- {
342
- DEBUGLOG(5, "ZSTD_decompressLegacyStream for v0.%u", version);
343
- switch(version)
344
- {
345
- default :
346
- case 1 :
347
- case 2 :
348
- case 3 :
349
- (void)legacyContext; (void)output; (void)input;
350
- return ERROR(version_unsupported);
351
- #if (ZSTD_LEGACY_SUPPORT <= 4)
352
- case 4 :
353
- {
354
- ZBUFFv04_DCtx* dctx = (ZBUFFv04_DCtx*) legacyContext;
355
- const void* src = (const char*)input->src + input->pos;
356
- size_t readSize = input->size - input->pos;
357
- void* dst = (char*)output->dst + output->pos;
358
- size_t decodedSize = output->size - output->pos;
359
- size_t const hintSize = ZBUFFv04_decompressContinue(dctx, dst, &decodedSize, src, &readSize);
360
- output->pos += decodedSize;
361
- input->pos += readSize;
362
- return hintSize;
363
- }
364
- #endif
365
- #if (ZSTD_LEGACY_SUPPORT <= 5)
366
- case 5 :
367
- {
368
- ZBUFFv05_DCtx* dctx = (ZBUFFv05_DCtx*) legacyContext;
369
- const void* src = (const char*)input->src + input->pos;
370
- size_t readSize = input->size - input->pos;
371
- void* dst = (char*)output->dst + output->pos;
372
- size_t decodedSize = output->size - output->pos;
373
- size_t const hintSize = ZBUFFv05_decompressContinue(dctx, dst, &decodedSize, src, &readSize);
374
- output->pos += decodedSize;
375
- input->pos += readSize;
376
- return hintSize;
377
- }
378
- #endif
379
- #if (ZSTD_LEGACY_SUPPORT <= 6)
380
- case 6 :
381
- {
382
- ZBUFFv06_DCtx* dctx = (ZBUFFv06_DCtx*) legacyContext;
383
- const void* src = (const char*)input->src + input->pos;
384
- size_t readSize = input->size - input->pos;
385
- void* dst = (char*)output->dst + output->pos;
386
- size_t decodedSize = output->size - output->pos;
387
- size_t const hintSize = ZBUFFv06_decompressContinue(dctx, dst, &decodedSize, src, &readSize);
388
- output->pos += decodedSize;
389
- input->pos += readSize;
390
- return hintSize;
391
- }
392
- #endif
393
- #if (ZSTD_LEGACY_SUPPORT <= 7)
394
- case 7 :
395
- {
396
- ZBUFFv07_DCtx* dctx = (ZBUFFv07_DCtx*) legacyContext;
397
- const void* src = (const char*)input->src + input->pos;
398
- size_t readSize = input->size - input->pos;
399
- void* dst = (char*)output->dst + output->pos;
400
- size_t decodedSize = output->size - output->pos;
401
- size_t const hintSize = ZBUFFv07_decompressContinue(dctx, dst, &decodedSize, src, &readSize);
402
- output->pos += decodedSize;
403
- input->pos += readSize;
404
- return hintSize;
405
- }
406
- #endif
407
- }
408
- }
409
-
410
-
411
- #if defined (__cplusplus)
412
- }
413
- #endif
414
-
415
- #endif /* ZSTD_LEGACY_H */