Adding upstream version 1.15~pre1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
c78d56fd7a
commit
0ff20a5602
36 changed files with 793 additions and 495 deletions
16
decoder.cc
16
decoder.cc
|
@ -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; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue