From ea94b872c10d282002d37289d7479347bb370c51 Mon Sep 17 00:00:00 2001 From: Quim Rovira Date: Sat, 13 Aug 2016 13:29:06 +0200 Subject: [PATCH] Update use of deprecated brotli decoder APIs This does not cover the use of BrotliDecompressedSize, and by looking at the brotli code, it might even be a good idea to just use the streaming interface right away. --- Brotli.xs | 22 +++++++++++----------- lib/IO/Uncompress/Brotli.pm | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Brotli.xs b/Brotli.xs index 8cb26c9..b7f33d6 100644 --- a/Brotli.xs +++ b/Brotli.xs @@ -27,32 +27,32 @@ SV* unbro(buffer) } Newx(decoded_buffer, decoded_size+1, uint8_t); decoded_buffer[decoded_size]=0; - if(!BrotliDecompressBuffer(encoded_size, encoded_buffer, &decoded_size, decoded_buffer)){ - croak("Error in BrotliDecompressBuffer"); + if(!BrotliDecoderDecompress(encoded_size, encoded_buffer, &decoded_size, decoded_buffer)){ + croak("Error in BrotliDecoderDecompress"); } RETVAL = newSV(0); sv_usepvn_flags(RETVAL, decoded_buffer, decoded_size, SV_HAS_TRAILING_NUL); OUTPUT: RETVAL -SV* BrotliCreateState() +SV* BrotliDecoderCreateInstance() CODE: - RETVAL = newSViv((IV)BrotliCreateState(NULL, NULL, NULL)); + RETVAL = newSViv((IV)BrotliDecoderCreateInstance(NULL, NULL, NULL)); OUTPUT: RETVAL -void BrotliDestroyState(state) +void BrotliDecoderDestroyInstance(state) SV* state CODE: - BrotliDestroyState((BrotliState*)SvIV(state)); + BrotliDecoderDestroyInstance((BrotliDecoderState*)SvIV(state)); -SV* BrotliDecompressStream(state, in) +SV* BrotliDecoderDecompressStream(state, in) SV* state SV* in PREINIT: uint8_t *next_in, *next_out; size_t available_in, available_out, total_out; - BrotliResult result; + BrotliDecoderResult result; CODE: next_in = (uint8_t*) SvPV(in, available_in); RETVAL = newSVpv("", 0); @@ -60,9 +60,9 @@ SV* BrotliDecompressStream(state, in) while(result == BROTLI_RESULT_NEEDS_MORE_OUTPUT) { next_out = buffer; available_out=BUFFER_SIZE; - result = BrotliDecompressStream(&available_in, (const uint8_t**) &next_in, &available_out, &next_out, &total_out, (BrotliState*) SvIV(state)); + result = BrotliDecoderDecompressStream((BrotliDecoderState*) SvIV(state), &available_in, (const uint8_t**) &next_in, &available_out, &next_out, &total_out); if(!result){ - croak("Error in BrotliDecompressStream"); + croak("Error in BrotliDecoderDecompressStream"); } sv_catpvn(RETVAL, (const char*)buffer, BUFFER_SIZE-available_out); } @@ -77,4 +77,4 @@ void BrotliSetCustomDictionary(state, dict) uint8_t *data; CODE: data = SvPV(dict, size); - BrotliSetCustomDictionary(size, data, (BrotliState*) SvIV(state)); + BrotliDecoderSetCustomDictionary((BrotliDecoderState*) SvIV(state), size, data); diff --git a/lib/IO/Uncompress/Brotli.pm b/lib/IO/Uncompress/Brotli.pm index 77e8b69..2f37d8f 100644 --- a/lib/IO/Uncompress/Brotli.pm +++ b/lib/IO/Uncompress/Brotli.pm @@ -15,18 +15,18 @@ XSLoader::load('IO::Compress::Brotli', $VERSION); sub create { my ($class) = @_; - my $state = BrotliCreateState(); + my $state = BrotliDecoderCreateInstance(); bless \$state, $class } sub DESTROY { my ($self) = @_; - BrotliDestroyState($$self) + BrotliDecoderDestroyInstance($$self) } sub decompress { my ($self, $data) = @_; - BrotliDecompressStream($$self, $data) + BrotliDecoderDecompressStream($$self, $data) } # Untested, probably not working -- 2.39.2