1
0
Fork 0

Adding upstream version 1.15~pre1.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-21 11:16:33 +01:00
parent c78d56fd7a
commit 0ff20a5602
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
36 changed files with 793 additions and 495 deletions

View file

@ -126,7 +126,7 @@ void LZ_decoder::flush_data()
bool LZ_decoder::verify_trailer( const Pretty_print & pp ) const
{
File_trailer trailer;
const int trailer_size = File_trailer::size( member_version );
const int trailer_size = File_trailer::size;
const unsigned long long member_size =
rdec.member_position() + trailer_size;
bool error = false;
@ -144,8 +144,6 @@ bool LZ_decoder::verify_trailer( const Pretty_print & pp ) const
while( size < trailer_size ) trailer.data[size++] = 0;
}
if( member_version == 0 ) trailer.member_size( member_size );
if( !rdec.code_is_zero() )
{
error = true;
@ -220,7 +218,7 @@ int LZ_decoder::decode_member( const Pretty_print & pp )
while( !rdec.finished() )
{
const int pos_state = data_position() & pos_state_mask;
if( rdec.decode_bit( bm_match[state()][pos_state] ) == 0 )
if( rdec.decode_bit( bm_match[state()][pos_state] ) == 0 ) // 1st bit
{
const uint8_t prev_byte = get_prev_byte();
if( state.is_char() )
@ -233,21 +231,21 @@ int LZ_decoder::decode_member( const Pretty_print & pp )
else
{
int len;
if( rdec.decode_bit( bm_rep[state()] ) == 1 )
if( rdec.decode_bit( bm_rep[state()] ) == 1 ) // 2nd bit
{
if( rdec.decode_bit( bm_rep0[state()] ) == 0 )
if( rdec.decode_bit( bm_rep0[state()] ) == 0 ) // 3rd bit
{
if( rdec.decode_bit( bm_len[state()][pos_state] ) == 0 )
if( rdec.decode_bit( bm_len[state()][pos_state] ) == 0 ) // 4th bit
{ state.set_short_rep(); put_byte( get_byte( rep0 ) ); continue; }
}
else
{
unsigned distance;
if( rdec.decode_bit( bm_rep1[state()] ) == 0 )
if( rdec.decode_bit( bm_rep1[state()] ) == 0 ) // 4th bit
distance = rep1;
else
{
if( rdec.decode_bit( bm_rep2[state()] ) == 0 )
if( rdec.decode_bit( bm_rep2[state()] ) == 0 ) // 5th bit
distance = rep2;
else
{ distance = rep3; rep3 = rep2; }