Pierre Neidhardt wrote:
3. In both functions, should we *compress_write everything first, then
*compress_read as much as we can? Or chain write-read calls like in
bbexample.c?
If you want it simple, you may even alternate write/read calls in a loop
without checking LZ_(de)compress_write_size. See this patch to bbexample.c:
--- bbexample.c~ 2019-01-02 12:51:19.000000000 +0100
+++ bbexample.c 2019-04-23 18:52:01.000000000 +0200
@@ -128,8 +128,6 @@
while( true )
{
int rd;
- if( LZ_compress_write_size( encoder ) > 0 )
- {
if( written < size )
{
const int wr = LZ_compress_write( encoder, data + written,
@@ -138,7 +136,6 @@
written += wr;
}
if( written >= size ) LZ_compress_finish( encoder );
- }
rd = LZ_compress_read( encoder, new_data + new_pos,
new_data_size - new_pos );
if( rd < 0 ) { error = true; break; }
@@ -187,8 +184,6 @@
while( true )
{
int rd;
- if( LZ_decompress_write_size( decoder ) > 0 )
- {
if( written < size )
{
const int wr = LZ_decompress_write( decoder, data + written,
@@ -197,7 +192,6 @@
written += wr;
}
if( written >= size ) LZ_decompress_finish( decoder );
- }
rd = LZ_decompress_read( decoder, new_data + new_pos,
new_data_size - new_pos );
if( rd < 0 ) { error = true; break; }
_______________________________________________
Lzip-bug mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lzip-bug