mirror of
https://github.com/facebook/zstd.git
synced 2025-11-27 00:05:09 -05:00
added ZSTD_decompress_generic_simpleArgs()
This commit is contained in:
parent
6ee05a02b8
commit
f2a913862c
@ -1142,6 +1142,18 @@ size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t
|
|||||||
|
|
||||||
</p></pre><BR>
|
</p></pre><BR>
|
||||||
|
|
||||||
|
<pre><b>size_t ZSTD_decompress_generic_simpleArgs (
|
||||||
|
ZSTD_DCtx* dctx,
|
||||||
|
void* dst, size_t dstCapacity, size_t* dstPos,
|
||||||
|
const void* src, size_t srcSize, size_t* srcPos);
|
||||||
|
</b><p> Same as ZSTD_decompress_generic(),
|
||||||
|
but using only integral types as arguments.
|
||||||
|
Argument list is larger than ZSTD_{in,out}Buffer,
|
||||||
|
but can be helpful for binders from dynamic languages
|
||||||
|
which have troubles handling structures containing memory pointers.
|
||||||
|
|
||||||
|
</p></pre><BR>
|
||||||
|
|
||||||
<a name="Chapter21"></a><h2>Block level API</h2><pre></pre>
|
<a name="Chapter21"></a><h2>Block level API</h2><pre></pre>
|
||||||
|
|
||||||
<pre><b></b><p> Frame metadata cost is typically ~18 bytes, which can be non-negligible for very small blocks (< 100 bytes).
|
<pre><b></b><p> Frame metadata cost is typically ~18 bytes, which can be non-negligible for very small blocks (< 100 bytes).
|
||||||
|
|||||||
@ -2599,3 +2599,17 @@ size_t ZSTD_decompress_generic(ZSTD_DCtx* dctx, ZSTD_outBuffer* output, ZSTD_inB
|
|||||||
{
|
{
|
||||||
return ZSTD_decompressStream(dctx, output, input);
|
return ZSTD_decompressStream(dctx, output, input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t ZSTD_decompress_generic_simpleArgs (
|
||||||
|
ZSTD_DCtx* dctx,
|
||||||
|
void* dst, size_t dstCapacity, size_t* dstPos,
|
||||||
|
const void* src, size_t srcSize, size_t* srcPos)
|
||||||
|
{
|
||||||
|
ZSTD_outBuffer output = { dst, dstCapacity, *dstPos };
|
||||||
|
ZSTD_inBuffer input = { src, srcSize, *srcPos };
|
||||||
|
/* ZSTD_compress_generic() will check validity of dstPos and srcPos */
|
||||||
|
size_t const cErr = ZSTD_decompress_generic(dctx, &output, &input);
|
||||||
|
*dstPos = output.pos;
|
||||||
|
*srcPos = input.pos;
|
||||||
|
return cErr;
|
||||||
|
}
|
||||||
|
|||||||
15
lib/zstd.h
15
lib/zstd.h
@ -1164,7 +1164,7 @@ ZSTDLIB_API void ZSTD_CCtx_reset(ZSTD_CCtx* cctx); /* Not ready yet ! */
|
|||||||
* but can be helpful for binders from dynamic languages
|
* but can be helpful for binders from dynamic languages
|
||||||
* which have troubles handling structures containing memory pointers.
|
* which have troubles handling structures containing memory pointers.
|
||||||
*/
|
*/
|
||||||
size_t ZSTD_compress_generic_simpleArgs (
|
ZSTDLIB_API size_t ZSTD_compress_generic_simpleArgs (
|
||||||
ZSTD_CCtx* cctx,
|
ZSTD_CCtx* cctx,
|
||||||
void* dst, size_t dstCapacity, size_t* dstPos,
|
void* dst, size_t dstCapacity, size_t* dstPos,
|
||||||
const void* src, size_t srcSize, size_t* srcPos,
|
const void* src, size_t srcSize, size_t* srcPos,
|
||||||
@ -1312,6 +1312,19 @@ ZSTDLIB_API size_t ZSTD_decompress_generic(ZSTD_DCtx* dctx,
|
|||||||
ZSTD_inBuffer* input);
|
ZSTD_inBuffer* input);
|
||||||
|
|
||||||
|
|
||||||
|
/*! ZSTD_decompress_generic_simpleArgs() :
|
||||||
|
* Same as ZSTD_decompress_generic(),
|
||||||
|
* but using only integral types as arguments.
|
||||||
|
* Argument list is larger than ZSTD_{in,out}Buffer,
|
||||||
|
* but can be helpful for binders from dynamic languages
|
||||||
|
* which have troubles handling structures containing memory pointers.
|
||||||
|
*/
|
||||||
|
ZSTDLIB_API size_t ZSTD_decompress_generic_simpleArgs (
|
||||||
|
ZSTD_DCtx* dctx,
|
||||||
|
void* dst, size_t dstCapacity, size_t* dstPos,
|
||||||
|
const void* src, size_t srcSize, size_t* srcPos);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Also : to re-init a decoding context, use ZSTD_initDStream().
|
* Also : to re-init a decoding context, use ZSTD_initDStream().
|
||||||
* Here for a similar API logic, we could create ZSTD_DCtx_reset().
|
* Here for a similar API logic, we could create ZSTD_DCtx_reset().
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user