extlz4 0.3.3 → 0.3.5
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/Rakefile +43 -3
- data/contrib/lz4/CODING_STYLE +57 -0
- data/contrib/lz4/LICENSE +3 -2
- data/contrib/lz4/Makefile.inc +56 -30
- data/contrib/lz4/NEWS +46 -0
- data/contrib/lz4/README.md +17 -6
- data/contrib/lz4/SECURITY.md +17 -0
- data/contrib/lz4/build/README.md +4 -15
- data/contrib/lz4/build/VS2022/_build.bat +39 -0
- data/contrib/lz4/build/VS2022/_setup.bat +35 -0
- data/contrib/lz4/build/VS2022/_test.bat +38 -0
- data/contrib/lz4/build/VS2022/build-and-test-win32-debug.bat +26 -0
- data/contrib/lz4/build/VS2022/build-and-test-win32-release.bat +26 -0
- data/contrib/lz4/build/VS2022/build-and-test-x64-debug.bat +26 -0
- data/contrib/lz4/build/VS2022/build-and-test-x64-release.bat +26 -0
- data/contrib/lz4/build/{VS2017 → VS2022}/datagen/datagen.vcxproj +11 -7
- data/contrib/lz4/build/{VS2017 → VS2022}/frametest/frametest.vcxproj +4 -4
- data/contrib/lz4/build/{VS2017 → VS2022}/fullbench/fullbench.vcxproj +4 -4
- data/contrib/lz4/build/{VS2017 → VS2022}/fullbench-dll/fullbench-dll.vcxproj +4 -4
- data/contrib/lz4/build/{VS2017 → VS2022}/fuzzer/fuzzer.vcxproj +4 -4
- data/contrib/lz4/build/{VS2017 → VS2022}/liblz4/liblz4.vcxproj +4 -4
- data/contrib/lz4/build/{VS2010 → VS2022}/liblz4-dll/liblz4-dll.rc +1 -1
- data/contrib/lz4/build/{VS2017 → VS2022}/liblz4-dll/liblz4-dll.vcxproj +4 -4
- data/contrib/lz4/build/{VS2010 → VS2022}/lz4/lz4.rc +1 -1
- data/contrib/lz4/build/{VS2017 → VS2022}/lz4/lz4.vcxproj +33 -8
- data/contrib/lz4/build/{VS2017 → VS2022}/lz4.sln +5 -2
- data/contrib/lz4/build/cmake/CMakeLists.txt +133 -100
- data/contrib/lz4/build/cmake/lz4Config.cmake.in +2 -0
- data/contrib/lz4/build/meson/GetLz4LibraryVersion.py +39 -0
- data/contrib/lz4/build/meson/README.md +34 -0
- data/contrib/lz4/build/meson/meson/contrib/gen_manual/meson.build +42 -0
- data/contrib/lz4/build/meson/meson/contrib/meson.build +11 -0
- data/contrib/lz4/build/meson/meson/examples/meson.build +32 -0
- data/contrib/lz4/build/meson/meson/lib/meson.build +87 -0
- data/contrib/lz4/build/meson/meson/meson.build +135 -0
- data/contrib/lz4/build/meson/meson/ossfuzz/meson.build +35 -0
- data/contrib/lz4/build/meson/meson/programs/meson.build +91 -0
- data/contrib/lz4/build/meson/meson/tests/meson.build +162 -0
- data/contrib/lz4/build/meson/meson.build +31 -0
- data/contrib/lz4/build/meson/meson_options.txt +44 -0
- data/contrib/lz4/build/visual/README.md +5 -0
- data/contrib/lz4/build/visual/generate_solution.cmd +55 -0
- data/contrib/lz4/build/visual/generate_vs2015.cmd +3 -0
- data/contrib/lz4/build/visual/generate_vs2017.cmd +3 -0
- data/contrib/lz4/build/visual/generate_vs2019.cmd +3 -0
- data/contrib/lz4/build/visual/generate_vs2022.cmd +3 -0
- data/contrib/lz4/lib/LICENSE +1 -1
- data/contrib/lz4/lib/README.md +69 -13
- data/contrib/lz4/lib/liblz4-dll.rc.in +1 -1
- data/contrib/lz4/lib/liblz4.pc.in +3 -3
- data/contrib/lz4/lib/lz4.c +608 -274
- data/contrib/lz4/lib/lz4.h +212 -102
- data/contrib/lz4/lib/lz4file.c +341 -0
- data/contrib/lz4/lib/lz4file.h +93 -0
- data/contrib/lz4/lib/lz4frame.c +545 -308
- data/contrib/lz4/lib/lz4frame.h +252 -124
- data/contrib/lz4/lib/lz4frame_static.h +1 -1
- data/contrib/lz4/lib/lz4hc.c +1038 -461
- data/contrib/lz4/lib/lz4hc.h +57 -56
- data/contrib/lz4/lib/xxhash.c +21 -21
- data/contrib/lz4/ossfuzz/Makefile +1 -0
- data/contrib/lz4/ossfuzz/decompress_fuzzer.c +18 -2
- data/contrib/lz4/ossfuzz/fuzz_helpers.h +4 -3
- data/contrib/lz4/ossfuzz/round_trip_frame_uncompressed_fuzzer.c +134 -0
- data/contrib/lz4/ossfuzz/round_trip_fuzzer.c +66 -6
- data/ext/blockapi.c +19 -19
- data/ext/extlz4.h +12 -0
- data/ext/frameapi.c +26 -26
- data/ext/hashargs.c +7 -1
- metadata +47 -30
- data/contrib/lz4/build/VS2010/datagen/datagen.vcxproj +0 -169
- data/contrib/lz4/build/VS2010/frametest/frametest.vcxproj +0 -176
- data/contrib/lz4/build/VS2010/fullbench/fullbench.vcxproj +0 -176
- data/contrib/lz4/build/VS2010/fullbench-dll/fullbench-dll.vcxproj +0 -180
- data/contrib/lz4/build/VS2010/fuzzer/fuzzer.vcxproj +0 -173
- data/contrib/lz4/build/VS2010/liblz4/liblz4.vcxproj +0 -175
- data/contrib/lz4/build/VS2010/liblz4-dll/liblz4-dll.vcxproj +0 -179
- data/contrib/lz4/build/VS2010/lz4/lz4.vcxproj +0 -189
- data/contrib/lz4/build/VS2010/lz4.sln +0 -98
- data/contrib/lz4/build/VS2017/liblz4-dll/liblz4-dll.rc +0 -51
- data/contrib/lz4/build/VS2017/lz4/lz4.rc +0 -51
- data/contrib/lz4/tmp +0 -0
- data/contrib/lz4/tmpsparse +0 -0
@@ -20,11 +20,16 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|
20
20
|
|
21
21
|
size_t const partialCapacity = FUZZ_getRange_from_uint32(partialCapacitySeed, 0, size);
|
22
22
|
size_t const dstCapacity = LZ4_compressBound(size);
|
23
|
-
|
24
|
-
|
23
|
+
size_t const largeSize = 64 * 1024 - 1;
|
24
|
+
size_t const smallSize = 1024;
|
25
|
+
char* const dstPlusLargePrefix = (char*)malloc(dstCapacity + largeSize);
|
26
|
+
FUZZ_ASSERT(dstPlusLargePrefix);
|
27
|
+
char* const dstPlusSmallPrefix = dstPlusLargePrefix + largeSize - smallSize;
|
28
|
+
char* const largeDict = (char*)malloc(largeSize);
|
29
|
+
FUZZ_ASSERT(largeDict);
|
30
|
+
char* const smallDict = largeDict + largeSize - smallSize;
|
31
|
+
char* const dst = dstPlusLargePrefix + largeSize;
|
25
32
|
char* const rt = (char*)malloc(size);
|
26
|
-
|
27
|
-
FUZZ_ASSERT(dst);
|
28
33
|
FUZZ_ASSERT(rt);
|
29
34
|
|
30
35
|
/* Compression must succeed and round trip correctly. */
|
@@ -47,9 +52,64 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|
47
52
|
FUZZ_ASSERT_MSG(!memcmp(data, partial, partialSize), "Corruption!");
|
48
53
|
free(partial);
|
49
54
|
}
|
55
|
+
/* Partial decompression using dict with no dict. */
|
56
|
+
{
|
57
|
+
char* const partial = (char*)malloc(partialCapacity);
|
58
|
+
FUZZ_ASSERT(partial);
|
59
|
+
int const partialSize = LZ4_decompress_safe_partial_usingDict(
|
60
|
+
dst, partial, dstSize, partialCapacity, partialCapacity, NULL, 0);
|
61
|
+
FUZZ_ASSERT(partialSize >= 0);
|
62
|
+
FUZZ_ASSERT_MSG(partialSize == partialCapacity, "Incorrect size");
|
63
|
+
FUZZ_ASSERT_MSG(!memcmp(data, partial, partialSize), "Corruption!");
|
64
|
+
free(partial);
|
65
|
+
}
|
66
|
+
/* Partial decompression using dict with small prefix as dict */
|
67
|
+
{
|
68
|
+
char* const partial = (char*)malloc(partialCapacity);
|
69
|
+
FUZZ_ASSERT(partial);
|
70
|
+
int const partialSize = LZ4_decompress_safe_partial_usingDict(
|
71
|
+
dst, partial, dstSize, partialCapacity, partialCapacity, dstPlusSmallPrefix, smallSize);
|
72
|
+
FUZZ_ASSERT(partialSize >= 0);
|
73
|
+
FUZZ_ASSERT_MSG(partialSize == partialCapacity, "Incorrect size");
|
74
|
+
FUZZ_ASSERT_MSG(!memcmp(data, partial, partialSize), "Corruption!");
|
75
|
+
free(partial);
|
76
|
+
}
|
77
|
+
/* Partial decompression using dict with large prefix as dict */
|
78
|
+
{
|
79
|
+
char* const partial = (char*)malloc(partialCapacity);
|
80
|
+
FUZZ_ASSERT(partial);
|
81
|
+
int const partialSize = LZ4_decompress_safe_partial_usingDict(
|
82
|
+
dst, partial, dstSize, partialCapacity, partialCapacity, dstPlusLargePrefix, largeSize);
|
83
|
+
FUZZ_ASSERT(partialSize >= 0);
|
84
|
+
FUZZ_ASSERT_MSG(partialSize == partialCapacity, "Incorrect size");
|
85
|
+
FUZZ_ASSERT_MSG(!memcmp(data, partial, partialSize), "Corruption!");
|
86
|
+
free(partial);
|
87
|
+
}
|
88
|
+
/* Partial decompression using dict with small external dict */
|
89
|
+
{
|
90
|
+
char* const partial = (char*)malloc(partialCapacity);
|
91
|
+
FUZZ_ASSERT(partial);
|
92
|
+
int const partialSize = LZ4_decompress_safe_partial_usingDict(
|
93
|
+
dst, partial, dstSize, partialCapacity, partialCapacity, smallDict, smallSize);
|
94
|
+
FUZZ_ASSERT(partialSize >= 0);
|
95
|
+
FUZZ_ASSERT_MSG(partialSize == partialCapacity, "Incorrect size");
|
96
|
+
FUZZ_ASSERT_MSG(!memcmp(data, partial, partialSize), "Corruption!");
|
97
|
+
free(partial);
|
98
|
+
}
|
99
|
+
/* Partial decompression using dict with large external dict */
|
100
|
+
{
|
101
|
+
char* const partial = (char*)malloc(partialCapacity);
|
102
|
+
FUZZ_ASSERT(partial);
|
103
|
+
int const partialSize = LZ4_decompress_safe_partial_usingDict(
|
104
|
+
dst, partial, dstSize, partialCapacity, partialCapacity, largeDict, largeSize);
|
105
|
+
FUZZ_ASSERT(partialSize >= 0);
|
106
|
+
FUZZ_ASSERT_MSG(partialSize == partialCapacity, "Incorrect size");
|
107
|
+
FUZZ_ASSERT_MSG(!memcmp(data, partial, partialSize), "Corruption!");
|
108
|
+
free(partial);
|
109
|
+
}
|
50
110
|
|
51
|
-
|
52
|
-
free(
|
111
|
+
free(dstPlusLargePrefix);
|
112
|
+
free(largeDict);
|
53
113
|
free(rt);
|
54
114
|
FUZZ_dataProducer_free(producer);
|
55
115
|
|
data/ext/blockapi.c
CHANGED
@@ -188,7 +188,7 @@ aux_shouldbe_string(VALUE obj)
|
|
188
188
|
static inline size_t
|
189
189
|
aux_lz4_compressbound(VALUE src)
|
190
190
|
{
|
191
|
-
return LZ4_compressBound(RSTRING_LEN(src));
|
191
|
+
return LZ4_compressBound(rb_long2int(RSTRING_LEN(src)));
|
192
192
|
}
|
193
193
|
|
194
194
|
enum {
|
@@ -441,7 +441,7 @@ blkenc_setup(int argc, VALUE argv[], struct blockencoder *p, VALUE predict)
|
|
441
441
|
* NOTE: すぐ下で LZ4_saveDict() を実行するため、
|
442
442
|
* NOTE: p->predict のバッファ領域が保持されることはない。
|
443
443
|
*/
|
444
|
-
p->traits->loaddict(p->context, RSTRING_PTR(p->predict), RSTRING_LEN(p->predict));
|
444
|
+
p->traits->loaddict(p->context, RSTRING_PTR(p->predict), rb_long2int(RSTRING_LEN(p->predict)));
|
445
445
|
}
|
446
446
|
|
447
447
|
p->prefixsize = p->traits->savedict(p->context, p->prefix, sizeof(p->prefix));
|
@@ -492,7 +492,7 @@ blkenc_update(int argc, VALUE argv[], VALUE enc)
|
|
492
492
|
char *srcp;
|
493
493
|
size_t srcsize;
|
494
494
|
RSTRING_GETMEM(src, srcp, srcsize);
|
495
|
-
int s = p->traits->update(p->context, srcp, RSTRING_PTR(dest), srcsize, maxsize, p->level);
|
495
|
+
int s = p->traits->update(p->context, srcp, RSTRING_PTR(dest), aux_size2int(srcsize), aux_size2int(maxsize), p->level);
|
496
496
|
if (s <= 0) {
|
497
497
|
rb_raise(extlz4_eError,
|
498
498
|
"destsize too small (given destsize is %"PRIuSIZE")",
|
@@ -673,7 +673,7 @@ blkenc_s_encode(int argc, VALUE argv[], VALUE lz4)
|
|
673
673
|
aux_str_reserve(dest, maxsize);
|
674
674
|
rb_str_set_len(dest, 0);
|
675
675
|
|
676
|
-
int size = encoder(RSTRING_PTR(src), RSTRING_PTR(dest), srcsize, maxsize, level);
|
676
|
+
int size = encoder(RSTRING_PTR(src), RSTRING_PTR(dest), aux_size2int(srcsize), aux_size2int(maxsize), level);
|
677
677
|
if (size <= 0) {
|
678
678
|
rb_raise(extlz4_eError,
|
679
679
|
"failed LZ4 compress - maxsize is too small, or out of memory");
|
@@ -689,13 +689,13 @@ init_blockencoder(void)
|
|
689
689
|
{
|
690
690
|
VALUE cBlockEncoder = rb_define_class_under(extlz4_mLZ4, "BlockEncoder", rb_cObject);
|
691
691
|
rb_define_alloc_func(cBlockEncoder, blkenc_alloc);
|
692
|
-
rb_define_method(cBlockEncoder, "initialize",
|
693
|
-
rb_define_method(cBlockEncoder, "reset",
|
694
|
-
rb_define_method(cBlockEncoder, "update",
|
695
|
-
rb_define_method(cBlockEncoder, "release",
|
696
|
-
rb_define_method(cBlockEncoder, "predict",
|
697
|
-
rb_define_method(cBlockEncoder, "savedict",
|
698
|
-
rb_define_method(cBlockEncoder, "inspect",
|
692
|
+
rb_define_method(cBlockEncoder, "initialize", blkenc_init, -1);
|
693
|
+
rb_define_method(cBlockEncoder, "reset", blkenc_reset, -1);
|
694
|
+
rb_define_method(cBlockEncoder, "update", blkenc_update, -1);
|
695
|
+
rb_define_method(cBlockEncoder, "release", blkenc_release, 0);
|
696
|
+
rb_define_method(cBlockEncoder, "predict", blkenc_predict, 0);
|
697
|
+
rb_define_method(cBlockEncoder, "savedict", blkenc_savedict, -1);
|
698
|
+
rb_define_method(cBlockEncoder, "inspect", blkenc_inspect, 0);
|
699
699
|
rb_define_alias(cBlockEncoder, "encode", "update");
|
700
700
|
rb_define_alias(cBlockEncoder, "compress", "update");
|
701
701
|
rb_define_alias(cBlockEncoder, "free", "release");
|
@@ -870,8 +870,8 @@ blkdec_update(int argc, VALUE argv[], VALUE dec)
|
|
870
870
|
const char *srcp;
|
871
871
|
size_t srcsize;
|
872
872
|
RSTRING_GETMEM(src, srcp, srcsize);
|
873
|
-
LZ4_setStreamDecode(p->context, p->dictbuf, p->dictsize);
|
874
|
-
int s = aux_LZ4_decompress_safe_continue(p->context, srcp, RSTRING_PTR(dest), srcsize, maxsize);
|
873
|
+
LZ4_setStreamDecode(p->context, p->dictbuf, aux_size2int(p->dictsize));
|
874
|
+
int s = aux_LZ4_decompress_safe_continue(p->context, srcp, RSTRING_PTR(dest), aux_size2int(srcsize), aux_size2int(maxsize));
|
875
875
|
if (s < 0) {
|
876
876
|
rb_raise(extlz4_eError,
|
877
877
|
"`max_dest_size' too small, or corrupt lz4'd data");
|
@@ -879,7 +879,7 @@ blkdec_update(int argc, VALUE argv[], VALUE dec)
|
|
879
879
|
rb_str_set_len(dest, s);
|
880
880
|
|
881
881
|
/* copy prefix */
|
882
|
-
if (s < sizeof(p->dictbuf)) {
|
882
|
+
if ((size_t)s < sizeof(p->dictbuf)) {
|
883
883
|
ssize_t discard = (p->dictsize + s) - sizeof(p->dictbuf);
|
884
884
|
if (discard > 0) {
|
885
885
|
size_t remain = p->dictsize - discard;
|
@@ -967,7 +967,7 @@ blkdec_s_decode(int argc, VALUE argv[], VALUE lz4)
|
|
967
967
|
aux_str_reserve(dest, maxsize);
|
968
968
|
rb_str_set_len(dest, 0);
|
969
969
|
|
970
|
-
int size = LZ4_decompress_safe(RSTRING_PTR(src), RSTRING_PTR(dest), RSTRING_LEN(src), maxsize);
|
970
|
+
int size = LZ4_decompress_safe(RSTRING_PTR(src), RSTRING_PTR(dest), rb_long2int(RSTRING_LEN(src)), aux_size2int(maxsize));
|
971
971
|
if (size < 0) {
|
972
972
|
rb_raise(extlz4_eError,
|
973
973
|
"failed LZ4_decompress_safe - max_dest_size is too small, or data is corrupted");
|
@@ -983,10 +983,10 @@ init_blockdecoder(void)
|
|
983
983
|
{
|
984
984
|
VALUE cBlockDecoder = rb_define_class_under(extlz4_mLZ4, "BlockDecoder", rb_cObject);
|
985
985
|
rb_define_alloc_func(cBlockDecoder, blkdec_alloc);
|
986
|
-
rb_define_method(cBlockDecoder, "initialize",
|
987
|
-
rb_define_method(cBlockDecoder, "reset",
|
988
|
-
rb_define_method(cBlockDecoder, "update",
|
989
|
-
rb_define_method(cBlockDecoder, "release",
|
986
|
+
rb_define_method(cBlockDecoder, "initialize", blkdec_init, -1);
|
987
|
+
rb_define_method(cBlockDecoder, "reset", blkdec_reset, -1);
|
988
|
+
rb_define_method(cBlockDecoder, "update", blkdec_update, -1);
|
989
|
+
rb_define_method(cBlockDecoder, "release", blkdec_release, 0);
|
990
990
|
rb_define_alias(cBlockDecoder, "decode", "update");
|
991
991
|
rb_define_alias(cBlockDecoder, "decompress", "update");
|
992
992
|
rb_define_alias(cBlockDecoder, "uncompress", "update");
|
data/ext/extlz4.h
CHANGED
@@ -111,4 +111,16 @@ getref(VALUE obj, const rb_data_type_t *type)
|
|
111
111
|
return checkref(obj, getrefp(obj, type));
|
112
112
|
}
|
113
113
|
|
114
|
+
static inline int
|
115
|
+
aux_size2int(size_t n)
|
116
|
+
{
|
117
|
+
int m = (int)n;
|
118
|
+
|
119
|
+
if (m < 0 || (size_t)m != n) {
|
120
|
+
rb_raise(rb_eRangeError, "out of range integer conversion (size_t to int)");
|
121
|
+
}
|
122
|
+
|
123
|
+
return m;
|
124
|
+
}
|
125
|
+
|
114
126
|
#endif /* !EXTLZ4_H */
|
data/ext/frameapi.c
CHANGED
@@ -423,7 +423,7 @@ aux_read(VALUE obj, size_t size, VALUE buf)
|
|
423
423
|
if (NIL_P(AUX_FUNCALL(obj, id_read, SIZET2NUM(size), buf))) {
|
424
424
|
return Qnil;
|
425
425
|
} else {
|
426
|
-
if (RSTRING_LEN(buf) > size) {
|
426
|
+
if ((size_t)RSTRING_LEN(buf) > size) {
|
427
427
|
rb_raise(rb_eRuntimeError, "most read (%d, but expected to %d)", (int)RSTRING_LEN(buf), (int)size);
|
428
428
|
}
|
429
429
|
return buf;
|
@@ -511,7 +511,7 @@ fdec_read_fetch(VALUE dec, struct decoder *p)
|
|
511
511
|
rb_str_set_len(p->inbuf, 0);
|
512
512
|
}
|
513
513
|
|
514
|
-
while (RSTRING_LEN(p->inbuf) < p->status) {
|
514
|
+
while ((size_t)RSTRING_LEN(p->inbuf) < p->status) {
|
515
515
|
p->readbuf = aux_read(p->inport, p->status - RSTRING_LEN(p->inbuf), p->readbuf);
|
516
516
|
if (NIL_P(p->readbuf)) {
|
517
517
|
rb_raise(rb_eRuntimeError,
|
@@ -547,7 +547,7 @@ fdec_read_decode(VALUE dec, struct decoder *p, char *dest, size_t size)
|
|
547
547
|
break;
|
548
548
|
}
|
549
549
|
|
550
|
-
if (p->status > 0 && p->outoff >= RSTRING_LEN(p->outbuf)) {
|
550
|
+
if (p->status > 0 && p->outoff >= (size_t)RSTRING_LEN(p->outbuf)) {
|
551
551
|
fdec_read_fetch(dec, p);
|
552
552
|
}
|
553
553
|
|
@@ -737,33 +737,33 @@ extlz4_init_frameapi(void)
|
|
737
737
|
|
738
738
|
VALUE cEncoder = rb_define_class_under(extlz4_mLZ4, "Encoder", rb_cObject);
|
739
739
|
rb_define_alloc_func(cEncoder, fenc_alloc);
|
740
|
-
rb_define_method(cEncoder, "initialize",
|
741
|
-
rb_define_method(cEncoder, "write",
|
742
|
-
rb_define_method(cEncoder, "<<",
|
743
|
-
rb_define_method(cEncoder, "flush",
|
744
|
-
rb_define_method(cEncoder, "close",
|
740
|
+
rb_define_method(cEncoder, "initialize", fenc_init, -1);
|
741
|
+
rb_define_method(cEncoder, "write", fenc_write, -1);
|
742
|
+
rb_define_method(cEncoder, "<<", fenc_push, 1);
|
743
|
+
rb_define_method(cEncoder, "flush", fenc_flush, 0);
|
744
|
+
rb_define_method(cEncoder, "close", fenc_close, 0);
|
745
745
|
rb_define_alias(cEncoder, "finish", "close");
|
746
|
-
rb_define_method(cEncoder, "outport",
|
747
|
-
rb_define_method(cEncoder, "outport=",
|
748
|
-
rb_define_method(cEncoder, "prefs_level",
|
749
|
-
rb_define_method(cEncoder, "prefs_blocksize",
|
750
|
-
rb_define_method(cEncoder, "prefs_blocklink",
|
751
|
-
rb_define_method(cEncoder, "prefs_checksum",
|
752
|
-
rb_define_method(cEncoder, "inspect",
|
746
|
+
rb_define_method(cEncoder, "outport", fenc_getoutport, 0);
|
747
|
+
rb_define_method(cEncoder, "outport=", fenc_setoutport, 1);
|
748
|
+
rb_define_method(cEncoder, "prefs_level", fenc_prefs_level, 0);
|
749
|
+
rb_define_method(cEncoder, "prefs_blocksize", fenc_prefs_blocksize, 0);
|
750
|
+
rb_define_method(cEncoder, "prefs_blocklink", fenc_prefs_blocklink, 0);
|
751
|
+
rb_define_method(cEncoder, "prefs_checksum", fenc_prefs_checksum, 0);
|
752
|
+
rb_define_method(cEncoder, "inspect", fenc_inspect, 0);
|
753
753
|
|
754
754
|
VALUE cDecoder = rb_define_class_under(extlz4_mLZ4, "Decoder", rb_cObject);
|
755
755
|
rb_define_alloc_func(cDecoder, fdec_alloc);
|
756
|
-
rb_define_method(cDecoder, "initialize",
|
757
|
-
rb_define_method(cDecoder, "read",
|
758
|
-
rb_define_method(cDecoder, "getc",
|
759
|
-
rb_define_method(cDecoder, "getbyte",
|
760
|
-
rb_define_method(cDecoder, "close",
|
756
|
+
rb_define_method(cDecoder, "initialize", fdec_init, -1);
|
757
|
+
rb_define_method(cDecoder, "read", fdec_read, -1);
|
758
|
+
rb_define_method(cDecoder, "getc", fdec_getc, 0);
|
759
|
+
rb_define_method(cDecoder, "getbyte", fdec_getbyte, 0);
|
760
|
+
rb_define_method(cDecoder, "close", fdec_close, 0);
|
761
761
|
rb_define_alias(cDecoder, "finish", "close");
|
762
|
-
rb_define_method(cDecoder, "eof",
|
763
|
-
rb_define_method(cDecoder, "inport",
|
762
|
+
rb_define_method(cDecoder, "eof", fdec_eof, 0);
|
763
|
+
rb_define_method(cDecoder, "inport", fdec_inport, 0);
|
764
764
|
rb_define_alias(cDecoder, "eof?", "eof");
|
765
|
-
rb_define_method(cDecoder, "prefs_blocksize",
|
766
|
-
rb_define_method(cDecoder, "prefs_blocklink",
|
767
|
-
rb_define_method(cDecoder, "prefs_checksum",
|
768
|
-
rb_define_method(cDecoder, "inspect",
|
765
|
+
rb_define_method(cDecoder, "prefs_blocksize", fdec_prefs_blocksize, 0);
|
766
|
+
rb_define_method(cDecoder, "prefs_blocklink", fdec_prefs_blocklink, 0);
|
767
|
+
rb_define_method(cDecoder, "prefs_checksum", fdec_prefs_checksum, 0);
|
768
|
+
rb_define_method(cDecoder, "inspect", fdec_inspect, 0);
|
769
769
|
}
|
data/ext/hashargs.c
CHANGED
@@ -11,6 +11,12 @@
|
|
11
11
|
|
12
12
|
#include "hashargs.h"
|
13
13
|
|
14
|
+
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
|
15
|
+
# define aux_noreturn _Noreturn
|
16
|
+
#else
|
17
|
+
# define aux_noreturn
|
18
|
+
#endif
|
19
|
+
|
14
20
|
struct rbx_scanhash_args
|
15
21
|
{
|
16
22
|
struct rbx_scanhash_arg *args;
|
@@ -18,7 +24,7 @@ struct rbx_scanhash_args
|
|
18
24
|
VALUE rest;
|
19
25
|
};
|
20
26
|
|
21
|
-
static void
|
27
|
+
aux_noreturn static void
|
22
28
|
rbx_scanhash_error(ID given, struct rbx_scanhash_arg *args, const struct rbx_scanhash_arg *end)
|
23
29
|
{
|
24
30
|
// 引数の数が㌧でもない数の場合、よくないことが起きそう。
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extlz4
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dearblue
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: rake
|
@@ -53,6 +52,8 @@ extra_rdoc_files:
|
|
53
52
|
- contrib/lz4/LICENSE
|
54
53
|
- contrib/lz4/README.md
|
55
54
|
- contrib/lz4/build/README.md
|
55
|
+
- contrib/lz4/build/meson/README.md
|
56
|
+
- contrib/lz4/build/visual/README.md
|
56
57
|
- contrib/lz4/lib/LICENSE
|
57
58
|
- contrib/lz4/lib/README.md
|
58
59
|
- ext/blockapi.c
|
@@ -72,41 +73,60 @@ files:
|
|
72
73
|
- README.md
|
73
74
|
- Rakefile
|
74
75
|
- bin/extlz4
|
76
|
+
- contrib/lz4/CODING_STYLE
|
75
77
|
- contrib/lz4/INSTALL
|
76
78
|
- contrib/lz4/LICENSE
|
77
79
|
- contrib/lz4/Makefile.inc
|
78
80
|
- contrib/lz4/NEWS
|
79
81
|
- contrib/lz4/README.md
|
82
|
+
- contrib/lz4/SECURITY.md
|
80
83
|
- contrib/lz4/build/README.md
|
81
|
-
- contrib/lz4/build/
|
82
|
-
- contrib/lz4/build/
|
83
|
-
- contrib/lz4/build/
|
84
|
-
- contrib/lz4/build/
|
85
|
-
- contrib/lz4/build/
|
86
|
-
- contrib/lz4/build/
|
87
|
-
- contrib/lz4/build/
|
88
|
-
- contrib/lz4/build/
|
89
|
-
- contrib/lz4/build/
|
90
|
-
- contrib/lz4/build/
|
91
|
-
- contrib/lz4/build/
|
92
|
-
- contrib/lz4/build/
|
93
|
-
- contrib/lz4/build/
|
94
|
-
- contrib/lz4/build/
|
95
|
-
- contrib/lz4/build/
|
96
|
-
- contrib/lz4/build/
|
97
|
-
- contrib/lz4/build/
|
98
|
-
- contrib/lz4/build/
|
99
|
-
- contrib/lz4/build/VS2017/liblz4/liblz4.vcxproj
|
100
|
-
- contrib/lz4/build/VS2017/lz4.sln
|
101
|
-
- contrib/lz4/build/VS2017/lz4/lz4.rc
|
102
|
-
- contrib/lz4/build/VS2017/lz4/lz4.vcxproj
|
84
|
+
- contrib/lz4/build/VS2022/_build.bat
|
85
|
+
- contrib/lz4/build/VS2022/_setup.bat
|
86
|
+
- contrib/lz4/build/VS2022/_test.bat
|
87
|
+
- contrib/lz4/build/VS2022/build-and-test-win32-debug.bat
|
88
|
+
- contrib/lz4/build/VS2022/build-and-test-win32-release.bat
|
89
|
+
- contrib/lz4/build/VS2022/build-and-test-x64-debug.bat
|
90
|
+
- contrib/lz4/build/VS2022/build-and-test-x64-release.bat
|
91
|
+
- contrib/lz4/build/VS2022/datagen/datagen.vcxproj
|
92
|
+
- contrib/lz4/build/VS2022/frametest/frametest.vcxproj
|
93
|
+
- contrib/lz4/build/VS2022/fullbench-dll/fullbench-dll.vcxproj
|
94
|
+
- contrib/lz4/build/VS2022/fullbench/fullbench.vcxproj
|
95
|
+
- contrib/lz4/build/VS2022/fuzzer/fuzzer.vcxproj
|
96
|
+
- contrib/lz4/build/VS2022/liblz4-dll/liblz4-dll.rc
|
97
|
+
- contrib/lz4/build/VS2022/liblz4-dll/liblz4-dll.vcxproj
|
98
|
+
- contrib/lz4/build/VS2022/liblz4/liblz4.vcxproj
|
99
|
+
- contrib/lz4/build/VS2022/lz4.sln
|
100
|
+
- contrib/lz4/build/VS2022/lz4/lz4.rc
|
101
|
+
- contrib/lz4/build/VS2022/lz4/lz4.vcxproj
|
103
102
|
- contrib/lz4/build/cmake/CMakeLists.txt
|
103
|
+
- contrib/lz4/build/cmake/lz4Config.cmake.in
|
104
|
+
- contrib/lz4/build/meson/GetLz4LibraryVersion.py
|
105
|
+
- contrib/lz4/build/meson/README.md
|
106
|
+
- contrib/lz4/build/meson/meson.build
|
107
|
+
- contrib/lz4/build/meson/meson/contrib/gen_manual/meson.build
|
108
|
+
- contrib/lz4/build/meson/meson/contrib/meson.build
|
109
|
+
- contrib/lz4/build/meson/meson/examples/meson.build
|
110
|
+
- contrib/lz4/build/meson/meson/lib/meson.build
|
111
|
+
- contrib/lz4/build/meson/meson/meson.build
|
112
|
+
- contrib/lz4/build/meson/meson/ossfuzz/meson.build
|
113
|
+
- contrib/lz4/build/meson/meson/programs/meson.build
|
114
|
+
- contrib/lz4/build/meson/meson/tests/meson.build
|
115
|
+
- contrib/lz4/build/meson/meson_options.txt
|
116
|
+
- contrib/lz4/build/visual/README.md
|
117
|
+
- contrib/lz4/build/visual/generate_solution.cmd
|
118
|
+
- contrib/lz4/build/visual/generate_vs2015.cmd
|
119
|
+
- contrib/lz4/build/visual/generate_vs2017.cmd
|
120
|
+
- contrib/lz4/build/visual/generate_vs2019.cmd
|
121
|
+
- contrib/lz4/build/visual/generate_vs2022.cmd
|
104
122
|
- contrib/lz4/lib/LICENSE
|
105
123
|
- contrib/lz4/lib/README.md
|
106
124
|
- contrib/lz4/lib/liblz4-dll.rc.in
|
107
125
|
- contrib/lz4/lib/liblz4.pc.in
|
108
126
|
- contrib/lz4/lib/lz4.c
|
109
127
|
- contrib/lz4/lib/lz4.h
|
128
|
+
- contrib/lz4/lib/lz4file.c
|
129
|
+
- contrib/lz4/lib/lz4file.h
|
110
130
|
- contrib/lz4/lib/lz4frame.c
|
111
131
|
- contrib/lz4/lib/lz4frame.h
|
112
132
|
- contrib/lz4/lib/lz4frame_static.h
|
@@ -128,13 +148,12 @@ files:
|
|
128
148
|
- contrib/lz4/ossfuzz/lz4_helpers.h
|
129
149
|
- contrib/lz4/ossfuzz/ossfuzz.sh
|
130
150
|
- contrib/lz4/ossfuzz/round_trip_frame_fuzzer.c
|
151
|
+
- contrib/lz4/ossfuzz/round_trip_frame_uncompressed_fuzzer.c
|
131
152
|
- contrib/lz4/ossfuzz/round_trip_fuzzer.c
|
132
153
|
- contrib/lz4/ossfuzz/round_trip_hc_fuzzer.c
|
133
154
|
- contrib/lz4/ossfuzz/round_trip_stream_fuzzer.c
|
134
155
|
- contrib/lz4/ossfuzz/standaloneengine.c
|
135
156
|
- contrib/lz4/ossfuzz/travisoss.sh
|
136
|
-
- contrib/lz4/tmp
|
137
|
-
- contrib/lz4/tmpsparse
|
138
157
|
- examples/frameapi.rb
|
139
158
|
- ext/blockapi.c
|
140
159
|
- ext/depend
|
@@ -157,7 +176,6 @@ homepage: https://github.com/dearblue/ruby-extlz4
|
|
157
176
|
licenses:
|
158
177
|
- BSD-2-Clause
|
159
178
|
metadata: {}
|
160
|
-
post_install_message:
|
161
179
|
rdoc_options:
|
162
180
|
- "--charset"
|
163
181
|
- UTF-8
|
@@ -176,8 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
194
|
- !ruby/object:Gem::Version
|
177
195
|
version: '0'
|
178
196
|
requirements: []
|
179
|
-
rubygems_version: 3.
|
180
|
-
signing_key:
|
197
|
+
rubygems_version: 3.6.8
|
181
198
|
specification_version: 4
|
182
199
|
summary: ruby bindings for LZ4
|
183
200
|
test_files: []
|
@@ -1,169 +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>{D745AE2F-596A-403A-9B91-81A8C6779243}</ProjectGuid>
|
23
|
-
<Keyword>Win32Proj</Keyword>
|
24
|
-
<RootNamespace>datagen</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>Unicode</CharacterSet>
|
33
|
-
</PropertyGroup>
|
34
|
-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
35
|
-
<ConfigurationType>Application</ConfigurationType>
|
36
|
-
<UseDebugLibraries>true</UseDebugLibraries>
|
37
|
-
<CharacterSet>Unicode</CharacterSet>
|
38
|
-
</PropertyGroup>
|
39
|
-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
40
|
-
<ConfigurationType>Application</ConfigurationType>
|
41
|
-
<UseDebugLibraries>false</UseDebugLibraries>
|
42
|
-
<CharacterSet>Unicode</CharacterSet>
|
43
|
-
<WholeProgramOptimization Condition="'$(EnableWholeProgramOptimization)'=='true'">true</WholeProgramOptimization>
|
44
|
-
</PropertyGroup>
|
45
|
-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
46
|
-
<ConfigurationType>Application</ConfigurationType>
|
47
|
-
<UseDebugLibraries>false</UseDebugLibraries>
|
48
|
-
<CharacterSet>Unicode</CharacterSet>
|
49
|
-
<WholeProgramOptimization Condition="'$(EnableWholeProgramOptimization)'=='true'">true</WholeProgramOptimization>
|
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);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
|
70
|
-
</PropertyGroup>
|
71
|
-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
72
|
-
<LinkIncremental>true</LinkIncremental>
|
73
|
-
<IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
|
74
|
-
<RunCodeAnalysis>true</RunCodeAnalysis>
|
75
|
-
</PropertyGroup>
|
76
|
-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
77
|
-
<LinkIncremental>false</LinkIncremental>
|
78
|
-
<IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
|
79
|
-
</PropertyGroup>
|
80
|
-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
81
|
-
<LinkIncremental>false</LinkIncremental>
|
82
|
-
<IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
|
83
|
-
<RunCodeAnalysis>true</RunCodeAnalysis>
|
84
|
-
</PropertyGroup>
|
85
|
-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
86
|
-
<ClCompile>
|
87
|
-
<PrecompiledHeader>
|
88
|
-
</PrecompiledHeader>
|
89
|
-
<WarningLevel>Level4</WarningLevel>
|
90
|
-
<Optimization>Disabled</Optimization>
|
91
|
-
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
92
|
-
<TreatWarningAsError>true</TreatWarningAsError>
|
93
|
-
<EnablePREfast>false</EnablePREfast>
|
94
|
-
<RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreadedDebug</RuntimeLibrary>
|
95
|
-
</ClCompile>
|
96
|
-
<Link>
|
97
|
-
<SubSystem>Console</SubSystem>
|
98
|
-
<GenerateDebugInformation>true</GenerateDebugInformation>
|
99
|
-
</Link>
|
100
|
-
</ItemDefinitionGroup>
|
101
|
-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
102
|
-
<ClCompile>
|
103
|
-
<PrecompiledHeader>
|
104
|
-
</PrecompiledHeader>
|
105
|
-
<WarningLevel>Level4</WarningLevel>
|
106
|
-
<Optimization>Disabled</Optimization>
|
107
|
-
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
108
|
-
<TreatWarningAsError>true</TreatWarningAsError>
|
109
|
-
<EnablePREfast>true</EnablePREfast>
|
110
|
-
<AdditionalOptions>/analyze:stacksize295252 %(AdditionalOptions)</AdditionalOptions>
|
111
|
-
<RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreadedDebug</RuntimeLibrary>
|
112
|
-
</ClCompile>
|
113
|
-
<Link>
|
114
|
-
<SubSystem>Console</SubSystem>
|
115
|
-
<GenerateDebugInformation>true</GenerateDebugInformation>
|
116
|
-
</Link>
|
117
|
-
</ItemDefinitionGroup>
|
118
|
-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
119
|
-
<ClCompile>
|
120
|
-
<WarningLevel>Level4</WarningLevel>
|
121
|
-
<PrecompiledHeader>
|
122
|
-
</PrecompiledHeader>
|
123
|
-
<Optimization>MaxSpeed</Optimization>
|
124
|
-
<FunctionLevelLinking>true</FunctionLevelLinking>
|
125
|
-
<IntrinsicFunctions>true</IntrinsicFunctions>
|
126
|
-
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
127
|
-
<TreatWarningAsError>false</TreatWarningAsError>
|
128
|
-
<EnablePREfast>false</EnablePREfast>
|
129
|
-
<RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreaded</RuntimeLibrary>
|
130
|
-
</ClCompile>
|
131
|
-
<Link>
|
132
|
-
<SubSystem>Console</SubSystem>
|
133
|
-
<GenerateDebugInformation>true</GenerateDebugInformation>
|
134
|
-
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
135
|
-
<OptimizeReferences>true</OptimizeReferences>
|
136
|
-
</Link>
|
137
|
-
</ItemDefinitionGroup>
|
138
|
-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
139
|
-
<ClCompile>
|
140
|
-
<WarningLevel>Level4</WarningLevel>
|
141
|
-
<PrecompiledHeader>
|
142
|
-
</PrecompiledHeader>
|
143
|
-
<Optimization>MaxSpeed</Optimization>
|
144
|
-
<FunctionLevelLinking>true</FunctionLevelLinking>
|
145
|
-
<IntrinsicFunctions>true</IntrinsicFunctions>
|
146
|
-
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
147
|
-
<TreatWarningAsError>false</TreatWarningAsError>
|
148
|
-
<EnablePREfast>true</EnablePREfast>
|
149
|
-
<AdditionalOptions>/analyze:stacksize295252 %(AdditionalOptions)</AdditionalOptions>
|
150
|
-
<RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreaded</RuntimeLibrary>
|
151
|
-
</ClCompile>
|
152
|
-
<Link>
|
153
|
-
<SubSystem>Console</SubSystem>
|
154
|
-
<GenerateDebugInformation>true</GenerateDebugInformation>
|
155
|
-
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
156
|
-
<OptimizeReferences>true</OptimizeReferences>
|
157
|
-
</Link>
|
158
|
-
</ItemDefinitionGroup>
|
159
|
-
<ItemGroup>
|
160
|
-
<ClCompile Include="..\..\..\programs\datagen.c" />
|
161
|
-
<ClCompile Include="..\..\..\tests\datagencli.c" />
|
162
|
-
</ItemGroup>
|
163
|
-
<ItemGroup>
|
164
|
-
<ClInclude Include="..\..\..\programs\datagen.h" />
|
165
|
-
</ItemGroup>
|
166
|
-
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
167
|
-
<ImportGroup Label="ExtensionTargets">
|
168
|
-
</ImportGroup>
|
169
|
-
</Project>
|