22# ====================
33
44function iserror (code:: Csize_t )
5- return ccall (( : ZSTD_isError, libzstd), Cuint, (Csize_t,), code) != 0
5+ return LibZstd . ZSTD_isError ( code) != 0
66end
77
88function zstderror (stream, code:: Csize_t )
9- ptr = ccall (( : ZSTD_getErrorName, libzstd), Cstring, (Csize_t,), code)
9+ ptr = LibZstd . ZSTD_getErrorName ( code)
1010 error (" zstd error: " , unsafe_string (ptr))
1111end
1212
1313function max_clevel ()
14- return ccall (( : ZSTD_maxCLevel, libzstd), Cint, () )
14+ return LibZstd . ZSTD_maxCLevel ( )
1515end
1616
1717const MAX_CLEVEL = max_clevel ()
1818
19- # ZSTD_outBuffer
20- mutable struct InBuffer
21- src:: Ptr{Cvoid}
22- size:: Csize_t
23- pos:: Csize_t
24-
25- function InBuffer ()
26- return new (C_NULL , 0 , 0 )
27- end
28- end
29-
30- # ZSTD_inBuffer
31- mutable struct OutBuffer
32- dst:: Ptr{Cvoid}
33- size:: Csize_t
34- pos:: Csize_t
35-
36- function OutBuffer ()
37- return new (C_NULL , 0 , 0 )
38- end
39- end
19+ const InBuffer = LibZstd. ZSTD_inBuffer
20+ InBuffer () = InBuffer (C_NULL , 0 , 0 )
21+ const OutBuffer = LibZstd. ZSTD_outBuffer
22+ OutBuffer () = OutBuffer (C_NULL , 0 , 0 )
4023
4124# ZSTD_CStream
4225mutable struct CStream
@@ -45,7 +28,7 @@ mutable struct CStream
4528 obuffer:: OutBuffer
4629
4730 function CStream ()
48- ptr = ccall (( : ZSTD_createCStream, libzstd), Ptr{Cvoid}, () )
31+ ptr = LibZstd . ZSTD_createCStream ( )
4932 if ptr == C_NULL
5033 throw (OutOfMemoryError ())
5134 end
@@ -54,23 +37,38 @@ mutable struct CStream
5437end
5538
5639function initialize! (cstream:: CStream , level:: Integer )
57- return ccall (( : ZSTD_initCStream, libzstd), Csize_t, (Ptr{Cvoid}, Cint), cstream. ptr, level)
40+ return LibZstd . ZSTD_initCStream ( cstream. ptr, level)
5841end
5942
6043function reset! (cstream:: CStream , srcsize:: Integer )
61- return ccall ((:ZSTD_resetCStream , libzstd), Csize_t, (Ptr{Cvoid}, Culonglong), cstream. ptr, srcsize)
44+ # ZSTD_resetCStream is deprecated
45+ # https://github.com/facebook/zstd/blob/9d2a45a705e22ad4817b41442949cd0f78597154/lib/zstd.h#L2253-L2272
46+ res = LibZstd. ZSTD_CCtx_reset (cstream. ptr, LibZstd. ZSTD_reset_session_only)
47+ if iserror (res)
48+ return res
49+ end
50+ if srcsize == 0
51+ # From zstd.h:
52+ # Note: ZSTD_resetCStream() interprets pledgedSrcSize == 0 as ZSTD_CONTENTSIZE_UNKNOWN, but
53+ # ZSTD_CCtx_setPledgedSrcSize() does not do the same, so ZSTD_CONTENTSIZE_UNKNOWN must be
54+ # explicitly specified.
55+ srcsize = ZSTD_CONTENTSIZE_UNKNOWN
56+ end
57+ return LibZstd. ZSTD_CCtx_setPledgedSrcSize (cstream. ptr, srcsize)
58+ # return ccall((:ZSTD_resetCStream, libzstd), Csize_t, (Ptr{Cvoid}, Culonglong), cstream.ptr, srcsize)
59+
6260end
6361
6462function compress! (cstream:: CStream )
65- return ccall (( : ZSTD_compressStream, libzstd), Csize_t, (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}), cstream. ptr, pointer_from_objref (cstream. obuffer), pointer_from_objref (cstream. ibuffer))
63+ return LibZstd . ZSTD_compressStream ( cstream. ptr, pointer_from_objref (cstream. obuffer), pointer_from_objref (cstream. ibuffer))
6664end
6765
6866function finish! (cstream:: CStream )
69- return ccall (( : ZSTD_endStream, libzstd), Csize_t, (Ptr{Cvoid}, Ptr{Cvoid}), cstream. ptr, pointer_from_objref (cstream. obuffer))
67+ return LibZstd . ZSTD_endStream ( cstream. ptr, pointer_from_objref (cstream. obuffer))
7068end
7169
7270function free! (cstream:: CStream )
73- return ccall (( : ZSTD_freeCStream, libzstd), Csize_t, (Ptr{Cvoid},), cstream. ptr)
71+ return LibZstd . ZSTD_freeCStream ( cstream. ptr)
7472end
7573
7674# ZSTD_DStream
@@ -80,7 +78,7 @@ mutable struct DStream
8078 obuffer:: OutBuffer
8179
8280 function DStream ()
83- ptr = ccall (( : ZSTD_createDStream, libzstd), Ptr{Cvoid}, () )
81+ ptr = LibZstd . ZSTD_createDStream ( )
8482 if ptr == C_NULL
8583 throw (OutOfMemoryError ())
8684 end
@@ -89,19 +87,21 @@ mutable struct DStream
8987end
9088
9189function initialize! (dstream:: DStream )
92- return ccall (( : ZSTD_initDStream, libzstd), Csize_t, (Ptr{Cvoid},), dstream. ptr)
90+ return LibZstd . ZSTD_initDStream ( dstream. ptr)
9391end
9492
9593function reset! (dstream:: DStream )
96- return ccall ((:ZSTD_resetDStream , libzstd), Csize_t, (Ptr{Cvoid},), dstream. ptr)
94+ # LibZstd.ZSTD_resetDStream is deprecated
95+ # https://github.com/facebook/zstd/blob/9d2a45a705e22ad4817b41442949cd0f78597154/lib/zstd.h#L2332-L2339
96+ return LibZstd. ZSTD_DCtx_reset (dstream. ptr, LibZstd. ZSTD_reset_session_only)
9797end
9898
9999function decompress! (dstream:: DStream )
100- return ccall (( : ZSTD_decompressStream, libzstd), Csize_t, (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}), dstream. ptr, pointer_from_objref (dstream. obuffer), pointer_from_objref (dstream. ibuffer))
100+ return LibZstd . ZSTD_decompressStream ( dstream. ptr, pointer_from_objref (dstream. obuffer), pointer_from_objref (dstream. ibuffer))
101101end
102102
103103function free! (dstream:: DStream )
104- return ccall (( : ZSTD_freeDStream, libzstd), Csize_t, (Ptr{Cvoid},), dstream. ptr)
104+ return LibZstd . ZSTD_freeDStream ( dstream. ptr)
105105end
106106
107107
@@ -112,5 +112,5 @@ const ZSTD_CONTENTSIZE_UNKNOWN = Culonglong(0) - 1
112112const ZSTD_CONTENTSIZE_ERROR = Culonglong (0 ) - 2
113113
114114function find_decompressed_size (src:: Ptr , size:: Integer )
115- return ccall (( : ZSTD_findDecompressedSize, libzstd), Culonglong, (Ptr{Cvoid}, Csize_t), src, size)
115+ return LibZstd . ZSTD_findDecompressedSize ( src, size)
116116end
0 commit comments