From 1bd12f8e72751a6431189a7088f01477a987a212 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 6 Jan 2019 11:08:51 +0100 Subject: Merging upstream version 1.8. Signed-off-by: Daniel Baumann --- dec_stream.cc | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'dec_stream.cc') diff --git a/dec_stream.cc b/dec_stream.cc index 36a0ec0..2e1f752 100644 --- a/dec_stream.cc +++ b/dec_stream.cc @@ -1,6 +1,6 @@ -/* Plzip - Parallel compressor compatible with lzip +/* Plzip - Massively parallel implementation of lzip Copyright (C) 2009 Laszlo Ersek. - Copyright (C) 2009-2018 Antonio Diaz Diaz. + Copyright (C) 2009-2019 Antonio Diaz Diaz. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -253,8 +253,8 @@ extern "C" void * dsplitter_s( void * arg ) Packet_courier & courier = *tmp.courier; const Pretty_print & pp = *tmp.pp; const int infd = tmp.infd; - const int hsize = File_header::size; - const int tsize = File_trailer::size; + const int hsize = Lzip_header::size; + const int tsize = Lzip_trailer::size; const int buffer_size = max_packet_size; const int base_buffer_size = tsize + buffer_size + hsize; uint8_t * const base_buffer = new( std::nothrow ) uint8_t[base_buffer_size]; @@ -268,7 +268,7 @@ extern "C" void * dsplitter_s( void * arg ) if( size + hsize < min_member_size ) { show_file_error( pp.name(), "Input file is too short." ); cleanup_and_fail( 2 ); } - const File_header & header = *(File_header *)buffer; + const Lzip_header & header = *(const Lzip_header *)buffer; if( !header.verify_magic() ) { show_file_error( pp.name(), bad_magic_msg ); cleanup_and_fail( 2 ); } if( !header.verify_version() ) @@ -288,11 +288,12 @@ extern "C" void * dsplitter_s( void * arg ) newpos = find_magic( buffer, newpos, size + 4 - newpos ); if( newpos <= size ) { - const File_trailer & trailer = *(File_trailer *)(buffer + newpos - tsize); + const Lzip_trailer & trailer = + *(const Lzip_trailer *)(buffer + newpos - tsize); const unsigned long long member_size = trailer.member_size(); if( partial_member_size + newpos - pos == member_size ) { // header found - const File_header & header = *(File_header *)(buffer + newpos); + const Lzip_header & header = *(const Lzip_header *)(buffer + newpos); if( !header.verify_version() ) { pp( bad_version( header.version() ) ); cleanup_and_fail( 2 ); } const unsigned dictionary_size = header.dictionary_size(); @@ -354,7 +355,7 @@ struct Worker_arg // if not testing, give the produced packets to courier. extern "C" void * dworker_s( void * arg ) { - const Worker_arg & tmp = *(Worker_arg *)arg; + const Worker_arg & tmp = *(const Worker_arg *)arg; Packet_courier & courier = *tmp.courier; const Pretty_print & pp = *tmp.pp; const int worker_id = tmp.worker_id; @@ -479,15 +480,14 @@ void muxer( Packet_courier & courier, const Pretty_print & pp, const int outfd ) int dec_stream( const unsigned long long cfile_size, const int num_workers, const int infd, const int outfd, const Pretty_print & pp, const int debug_level, + const int in_slots, const int out_slots, const bool ignore_trailing, const bool loose_trailing ) { - const int in_slots_per_worker = 2; - const int out_slots = 32; - const int in_slots = ( INT_MAX / num_workers >= in_slots_per_worker ) ? - num_workers * in_slots_per_worker : INT_MAX; + const int total_in_slots = ( INT_MAX / num_workers >= in_slots ) ? + num_workers * in_slots : INT_MAX; in_size = 0; out_size = 0; - Packet_courier courier( num_workers, in_slots, out_slots ); + Packet_courier courier( num_workers, total_in_slots, out_slots ); Splitter_arg splitter_arg; splitter_arg.cfile_size = cfile_size; -- cgit v1.2.3