Bug Summary

File:obj/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.c
Warning:line 684, column 17
Value stored to 'flags' is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.0 -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name Bzip2.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 1 -fhalf-no-semantic-interposition -fno-delete-null-pointer-checks -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/usr/obj/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2 -resource-dir /usr/local/lib/clang/13.0.0 -I . -D NO_LOCALE_NUMERIC -D NO_LOCALE_COLLATE -D VERSION="2.093" -D XS_VERSION="2.093" -D PIC -I ../.. -D BZ_NO_STDIO -internal-isystem /usr/local/lib/clang/13.0.0/include -internal-externc-isystem /usr/include -O2 -Wwrite-strings -fconst-strings -fdebug-compilation-dir=/usr/obj/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2 -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /home/ben/Projects/vmm/scan-build/2022-01-12-194120-40624-1 -x c Bzip2.c
1/*
2 * This file was generated automatically by ExtUtils::ParseXS version 3.40 from the
3 * contents of Bzip2.xs. Do not edit this file, edit Bzip2.xs instead.
4 *
5 * ANY CHANGES MADE HERE WILL BE LOST!
6 *
7 */
8
9#line 1 "Bzip2.xs"
10/* Filename: Bzip2.xs
11 * Author : Paul Marquess, <pmqs@cpan.org>
12 * Created : 5th October 2005
13 * Version : 2.000
14 *
15 * Copyright (c) 2005-2010 Paul Marquess. All rights reserved.
16 * This program is free software; you can redistribute it and/or
17 * modify it under the same terms as Perl itself.
18 *
19 */
20
21#define PERL_NO_GET_CONTEXT
22#include "EXTERN.h"
23#include "perl.h"
24#include "XSUB.h"
25
26#include "bzlib.h"
27
28#ifdef USE_PPPORT_H
29# define NEED_sv_2pv_nolen
30# include "ppport.h"
31#endif
32
33#if PERL_REVISION5 == 5 && (PERL_VERSION32 < 8 || (PERL_VERSION32 == 8 && PERL_SUBVERSION1 < 4 ))
34
35# ifdef SvPVbyte_force
36# undef SvPVbyte_force
37# endif
38
39# define SvPVbyte_force(sv,lp)((((sv)->sv_flags & (0x00000400|0x20000000|0x00000100|
0x00000200|0x00000800|0x00008000|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x00200000)) == 0x00000400
) ? ((lp = ((XPV*) (sv)->sv_any)->xpv_cur), ((sv)->sv_u
.svu_pv)) : Perl_sv_pvbyten_force( sv,&lp))
SvPV_force(sv,lp)((((sv)->sv_flags & (0x00000400|0x00000100|0x00000200|
0x00000800|0x00008000|(0x08000000|0x00010000|0x00000800|0x01000000
|0x00800000|0x10000000)|0x00200000)) == 0x00000400) ? ((lp =
((XPV*) (sv)->sv_any)->xpv_cur), ((sv)->sv_u.svu_pv
)) : Perl_sv_pvn_force_flags( sv,&lp,2))
40
41#endif
42
43#ifndef SvPVbyte_nolen
44# define SvPVbyte_nolen SvPV_nolen
45#endif
46
47
48#if PERL_REVISION5 == 5 && (PERL_VERSION32 >= 8 || (PERL_VERSION32 == 8 && PERL_SUBVERSION1 < 4 ))
49# define UTF8_AVAILABLE
50#endif
51
52typedef int DualType ;
53typedef int int_undef ;
54
55typedef unsigned long uLong;
56typedef unsigned int uInt;
57
58typedef struct di_stream {
59 int flags ;
60#define FLAG_APPEND_OUTPUT1 1
61#define FLAG_CONSUME_INPUT8 8
62#define FLAG_LIMIT_OUTPUT16 16
63 bz_stream stream;
64 uInt bufsize;
65 int last_error ;
66 uLong bytesInflated ;
67 uLong compressedBytes ;
68 uLong uncompressedBytes ;
69
70} di_stream;
71
72typedef di_stream * deflateStream ;
73typedef di_stream * Compress__Raw__Bzip2 ;
74
75typedef di_stream * inflateStream ;
76typedef di_stream * Compress__Raw__Bunzip2 ;
77
78#define COMPRESS_CLASS"Compress::Raw::Bzip2" "Compress::Raw::Bzip2"
79#define UNCOMPRESS_CLASS"Compress::Raw::Bunzip2" "Compress::Raw::Bunzip2"
80
81#define ZMALLOC(to, typ)((to = (typ *)Perl_safesysmalloc(sizeof(typ))), ((void)(__builtin_expect
(((((( sizeof(size_t) < sizeof(1) || sizeof(typ) > ((size_t
)1 << 8*(sizeof(size_t) - sizeof(1)))) ? (size_t)(1) : (
(size_t)-1)/sizeof(typ)) > ((size_t)-1)/sizeof(typ))) ? (_Bool
)1 : (_Bool)0),(0)) && (Perl_croak_memory_wrap(),0)),
((void)0), (void)memset((char*)(to),0,(1) * sizeof(typ))))
((to = (typ *)safemallocPerl_safesysmalloc(sizeof(typ))), \
82 Zero(to,1,typ)((void)(__builtin_expect(((((( sizeof(size_t) < sizeof(1) ||
sizeof(typ) > ((size_t)1 << 8*(sizeof(size_t) - sizeof
(1)))) ? (size_t)(1) : ((size_t)-1)/sizeof(typ)) > ((size_t
)-1)/sizeof(typ))) ? (_Bool)1 : (_Bool)0),(0)) && (Perl_croak_memory_wrap
(),0)), ((void)0), (void)memset((char*)(to),0,(1) * sizeof(typ
)))
)
83
84
85/* static const char * const my_z_errmsg[] = { */
86static const char my_z_errmsg[][32] = {
87 "End of Stream", /* BZ_STREAM_END 4 */
88 "Finish OK", /* BZ_FINISH_OK 3 */
89 "Flush OK", /* BZ_FLUSH_OK 2 */
90 "Run OK", /* BZ_RUN_OK 1 */
91 "", /* BZ_OK 0 */
92 "Sequence Error", /* BZ_SEQUENCE_ERROR (-1) */
93 "Param Error", /* BZ_PARAM_ERROR (-2) */
94 "Memory Error", /* BZ_MEM_ERROR (-3) */
95 "Data Error", /* BZ_DATA_ERROR (-4) */
96 "Magic Error", /* BZ_DATA_ERROR_MAGIC (-5) */
97 "IO Error", /* BZ_IO_ERROR (-6) */
98 "Unexpected EOF", /* BZ_UNEXPECTED_EOF (-7) */
99 "Output Buffer Full", /* BZ_OUTBUFF_FULL (-8) */
100 "Config Error", /* BZ_CONFIG_ERROR (-9) */
101 ""};
102
103#define setDUALstatus(var, err)Perl_sv_setnv( var,(double)err) ; Perl_sv_setpv( var,((err) ?
GetErrorString(err) : "")) ; ( (var)->sv_flags |= (0x00000200
|0x00002000));
\
104 sv_setnv(var, (double)err)Perl_sv_setnv( var,(double)err) ; \
105 sv_setpv(var, ((err) ? GetErrorString(err) : ""))Perl_sv_setpv( var,((err) ? GetErrorString(err) : "")) ; \
106 SvNOK_on(var)( (var)->sv_flags |= (0x00000200|0x00002000));
107
108
109#if defined(__SYMBIAN32__)
110# define NO_WRITEABLE_DATA
111#endif
112
113/* Set TRACE_DEFAULT to a non-zero value to enable tracing */
114#define TRACE_DEFAULT0 0
115
116#if defined(NO_WRITEABLE_DATA) || TRACE_DEFAULT0 == 0
117# define trace0 TRACE_DEFAULT0
118#else
119 static int trace0 = TRACE_DEFAULT0 ;
120#endif
121
122/* Dodge PerlIO hiding of these functions. */
123#undef printf
124
125#if 1
126#define getInnerObject(x)(*Perl_av_fetch( (AV*)((x)->sv_u.svu_rv),0,(0))) (*av_fetch((AV*)SvRV(x), 0, FALSE)Perl_av_fetch( (AV*)((x)->sv_u.svu_rv),0,(0)))
127#else
128#define getInnerObject(x)(*Perl_av_fetch( (AV*)((x)->sv_u.svu_rv),0,(0))) ((SV*)SvRV(sv)((sv)->sv_u.svu_rv))
129#endif
130
131#ifdef BZ_NO_STDIO1
132void bz_internal_error(int errorcode)
133{
134 croakPerl_croak("bz_internal_error %d\n", errorcode);
135}
136#endif
137
138static char *
139#ifdef CAN_PROTOTYPE
140GetErrorString(int error_no)
141#else
142GetErrorString(error_no)
143int error_no ;
144#endif
145{
146 return(char*) my_z_errmsg[4 - error_no];
147}
148
149static void
150#ifdef CAN_PROTOTYPE
151DispHex(void * ptr, int length)
152#else
153DispHex(ptr, length)
154 void * ptr;
155 int length;
156#endif
157{
158 char * p = (char*)ptr;
159 int i;
160 for (i = 0; i < length; ++i) {
161 printf(" %02x", 0xFF & *(p+i));
162 }
163}
164
165
166static void
167#ifdef CAN_PROTOTYPE
168DispStream(di_stream * s, const char * message)
169#else
170DispStream(s, message)
171 di_stream * s;
172 const char * message;
173#endif
174{
175
176#if 0
177 if (! trace0)
178 return ;
179#endif
180
181#define EnDis(f)(s->flags & f ? "Enabled" : "Disabled") (s->flags & f ? "Enabled" : "Disabled")
182
183 printf("DispStream 0x%p", s) ;
184 if (message)
185 printf(" - %s \n", message) ;
186 printf("\n") ;
187
188 if (!s) {
189 printf(" stream pointer is NULL\n");
190 }
191 else {
192 printf(" stream 0x%p\n", &(s->stream));
193 printf(" opaque 0x%p\n", s->stream.opaque);
194 printf(" state 0x%p\n", s->stream.state );
195 printf(" next_in 0x%p", s->stream.next_in);
196 if (s->stream.next_in){
197 printf(" =>");
198 DispHex(s->stream.next_in, 4);
199 }
200 printf("\n");
201
202 printf(" next_out 0x%p", s->stream.next_out);
203 if (s->stream.next_out){
204 printf(" =>");
205 DispHex(s->stream.next_out, 4);
206 }
207 printf("\n");
208
209 printf(" avail_in %lu\n", (unsigned long)s->stream.avail_in);
210 printf(" avail_out %lu\n", (unsigned long)s->stream.avail_out);
211 printf(" bufsize %lu\n", (unsigned long)s->bufsize);
212 printf(" total_in_lo32 %u\n", s->stream.total_in_lo32);
213 printf(" total_in_hi32 %u\n", s->stream.total_in_hi32);
214 printf(" total_out_lo32 %u\n", s->stream.total_out_lo32);
215 printf(" total_out_hi32 %u\n", s->stream.total_out_hi32);
216 printf(" flags 0x%x\n", s->flags);
217 printf(" APPEND %s\n", EnDis(FLAG_APPEND_OUTPUT)(s->flags & 1 ? "Enabled" : "Disabled"));
218 printf(" CONSUME %s\n", EnDis(FLAG_CONSUME_INPUT)(s->flags & 8 ? "Enabled" : "Disabled"));
219 printf(" LIMIT %s\n", EnDis(FLAG_LIMIT_OUTPUT)(s->flags & 16 ? "Enabled" : "Disabled"));
220
221 printf("\n");
222
223 }
224}
225
226static di_stream *
227#ifdef CAN_PROTOTYPE
228InitStream(void)
229#else
230InitStream()
231#endif
232{
233 di_stream *s ;
234
235 ZMALLOC(s, di_stream)((s = (di_stream *)Perl_safesysmalloc(sizeof(di_stream))), ((
void)(__builtin_expect(((((( sizeof(size_t) < sizeof(1) ||
sizeof(di_stream) > ((size_t)1 << 8*(sizeof(size_t)
- sizeof(1)))) ? (size_t)(1) : ((size_t)-1)/sizeof(di_stream
)) > ((size_t)-1)/sizeof(di_stream))) ? (_Bool)1 : (_Bool)
0),(0)) && (Perl_croak_memory_wrap(),0)), ((void)0), (
void)memset((char*)(s),0,(1) * sizeof(di_stream))))
;
236
237 return s ;
238
239}
240
241static void
242#ifdef CAN_PROTOTYPE
243PostInitStream(di_stream * s, int flags)
244#else
245PostInitStream(s, flags)
246 di_stream *s ;
247 int flags ;
248#endif
249{
250 s->bufsize = 1024 * 16 ;
251 s->last_error = 0 ;
252 s->flags = flags ;
253}
254
255
256static SV*
257#ifdef CAN_PROTOTYPE
258deRef(SV * sv, const char * string)
259#else
260deRef(sv, string)
261SV * sv ;
262char * string;
263#endif
264{
265 dTHXstruct Perl___notused_struct;
266 SvGETMAGIC(sv)((void)(__builtin_expect(((((sv)->sv_flags & 0x00200000
)) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( sv)))
;
267
268 if (SvROK(sv)((sv)->sv_flags & 0x00000800)) {
269 sv = SvRV(sv)((sv)->sv_u.svu_rv) ;
270 SvGETMAGIC(sv)((void)(__builtin_expect(((((sv)->sv_flags & 0x00200000
)) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( sv)))
;
271 switch(SvTYPE(sv)((svtype)((sv)->sv_flags & 0xff))) {
272 case SVt_PVAV:
273 case SVt_PVHV:
274 case SVt_PVCV:
275 croakPerl_croak("%s: buffer parameter is not a SCALAR reference", string);
276 default:
277 break;
278 }
279 if (SvROK(sv)((sv)->sv_flags & 0x00000800))
280 croakPerl_croak("%s: buffer parameter is a reference to a reference", string) ;
281 }
282
283 if (!SvOK(sv)((sv)->sv_flags & (0x00000100|0x00000200|0x00000400|0x00000800
| 0x00001000|0x00002000|0x00004000|0x00008000))
)
284 sv = sv_2mortal(newSVpv("", 0))Perl_sv_2mortal( Perl_newSVpv( "",0));
285
286 return sv ;
287}
288
289static SV*
290#ifdef CAN_PROTOTYPE
291deRef_l(SV * sv, const char * string)
292#else
293deRef_l(sv, string)
294SV * sv ;
295char * string ;
296#endif
297{
298 dTHXstruct Perl___notused_struct;
299 bool_Bool wipe = 0 ;
300 STRLEN na;
301
302 SvGETMAGIC(sv)((void)(__builtin_expect(((((sv)->sv_flags & 0x00200000
)) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( sv)))
;
303 wipe = ! SvOK(sv)((sv)->sv_flags & (0x00000100|0x00000200|0x00000400|0x00000800
| 0x00001000|0x00002000|0x00004000|0x00008000))
;
304
305 if (SvROK(sv)((sv)->sv_flags & 0x00000800)) {
306 sv = SvRV(sv)((sv)->sv_u.svu_rv) ;
307 SvGETMAGIC(sv)((void)(__builtin_expect(((((sv)->sv_flags & 0x00200000
)) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( sv)))
;
308 wipe = ! SvOK(sv)((sv)->sv_flags & (0x00000100|0x00000200|0x00000400|0x00000800
| 0x00001000|0x00002000|0x00004000|0x00008000))
;
309
310 switch(SvTYPE(sv)((svtype)((sv)->sv_flags & 0xff))) {
311 case SVt_PVAV:
312 case SVt_PVHV:
313 case SVt_PVCV:
314 croakPerl_croak("%s: buffer parameter is not a SCALAR reference", string);
315 default:
316 break;
317 }
318 if (SvROK(sv)((sv)->sv_flags & 0x00000800))
319 croakPerl_croak("%s: buffer parameter is a reference to a reference", string) ;
320 }
321
322 if (SvREADONLY(sv)((sv)->sv_flags & (0x08000000|0x00010000)) && PL_curcop != &PL_compiling)
323 croakPerl_croak("%s: buffer parameter is read-only", string);
324
325 SvUPGRADE(sv, SVt_PV)((void)(((svtype)((sv)->sv_flags & 0xff)) >= (SVt_PV
) || (Perl_sv_upgrade( sv,SVt_PV),1)))
;
326
327 if (wipe)
328 sv_setpv(sv, "")Perl_sv_setpv( sv,"") ;
329 else
330 (void)SvPVbyte_force(sv, na)((((sv)->sv_flags & (0x00000400|0x20000000|0x00000100|
0x00000200|0x00000800|0x00008000|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x00200000)) == 0x00000400
) ? ((na = ((XPV*) (sv)->sv_any)->xpv_cur), ((sv)->sv_u
.svu_pv)) : Perl_sv_pvbyten_force( sv,&na))
;
331
332 return sv ;
333}
334
335
336#include "constants.h"
337
338#line 339 "Bzip2.c"
339#ifndef PERL_UNUSED_VAR
340# define PERL_UNUSED_VAR(var)((void)sizeof(var)) if (0) var = var
341#endif
342
343#ifndef dVARstruct Perl___notused_struct
344# define dVARstruct Perl___notused_struct dNOOPstruct Perl___notused_struct
345#endif
346
347
348/* This stuff is not part of the API! You have been warned. */
349#ifndef PERL_VERSION_DECIMAL
350# define PERL_VERSION_DECIMAL(r,v,s)(r*1000000 + v*1000 + s) (r*1000000 + v*1000 + s)
351#endif
352#ifndef PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1)
353# define PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) \
354 PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)(5*1000000 + 32*1000 + 1)
355#endif
356#ifndef PERL_VERSION_GE
357# define PERL_VERSION_GE(r,v,s)((5*1000000 + 32*1000 + 1) >= (r*1000000 + v*1000 + s)) \
358 (PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) >= PERL_VERSION_DECIMAL(r,v,s)(r*1000000 + v*1000 + s))
359#endif
360#ifndef PERL_VERSION_LE
361# define PERL_VERSION_LE(r,v,s)((5*1000000 + 32*1000 + 1) <= (r*1000000 + v*1000 + s)) \
362 (PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) <= PERL_VERSION_DECIMAL(r,v,s)(r*1000000 + v*1000 + s))
363#endif
364
365/* XS_INTERNAL is the explicit static-linkage variant of the default
366 * XS macro.
367 *
368 * XS_EXTERNAL is the same as XS_INTERNAL except it does not include
369 * "STATIC", ie. it exports XSUB symbols. You probably don't want that
370 * for anything but the BOOT XSUB.
371 *
372 * See XSUB.h in core!
373 */
374
375
376/* TODO: This might be compatible further back than 5.10.0. */
377#if PERL_VERSION_GE(5, 10, 0)((5*1000000 + 32*1000 + 1) >= (5*1000000 + 10*1000 + 0)) && PERL_VERSION_LE(5, 15, 1)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 15*1000 + 1))
378# undef XS_EXTERNAL
379# undef XS_INTERNAL
380# if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
381# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) __declspec(dllexport) XSPROTO(name)void name( CV* cv __attribute__((unused)))
382# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) STATICstatic XSPROTO(name)void name( CV* cv __attribute__((unused)))
383# endif
384# if defined(__SYMBIAN32__)
385# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) EXPORT_C XSPROTO(name)void name( CV* cv __attribute__((unused)))
386# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) EXPORT_C STATICstatic XSPROTO(name)void name( CV* cv __attribute__((unused)))
387# endif
388# ifndef XS_EXTERNAL
389# if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
390# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) void name(pTHX_ CV* cv __attribute__unused____attribute__((unused)))
391# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) STATICstatic void name(pTHX_ CV* cv __attribute__unused____attribute__((unused)))
392# else
393# ifdef __cplusplus
394# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) extern "C" XSPROTO(name)void name( CV* cv __attribute__((unused)))
395# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) static XSPROTO(name)void name( CV* cv __attribute__((unused)))
396# else
397# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) XSPROTO(name)void name( CV* cv __attribute__((unused)))
398# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) STATICstatic XSPROTO(name)void name( CV* cv __attribute__((unused)))
399# endif
400# endif
401# endif
402#endif
403
404/* perl >= 5.10.0 && perl <= 5.15.1 */
405
406
407/* The XS_EXTERNAL macro is used for functions that must not be static
408 * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL
409 * macro defined, the best we can do is assume XS is the same.
410 * Dito for XS_INTERNAL.
411 */
412#ifndef XS_EXTERNAL
413# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) XS(name)void name( CV* cv __attribute__((unused)))
414#endif
415#ifndef XS_INTERNAL
416# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) XS(name)void name( CV* cv __attribute__((unused)))
417#endif
418
419/* Now, finally, after all this mess, we want an ExtUtils::ParseXS
420 * internal macro that we're free to redefine for varying linkage due
421 * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use
422 * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to!
423 */
424
425#undef XS_EUPXS
426#if defined(PERL_EUPXS_ALWAYS_EXPORT)
427# define XS_EUPXS(name)static void name( CV* cv __attribute__((unused))) XS_EXTERNAL(name)void name( CV* cv __attribute__((unused)))
428#else
429 /* default to internal */
430# define XS_EUPXS(name)static void name( CV* cv __attribute__((unused))) XS_INTERNAL(name)static void name( CV* cv __attribute__((unused)))
431#endif
432
433#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0)
434#define PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0) assert(cv)((void)0); assert(params)((void)0)
435
436/* prototype to pass -Wmissing-prototypes */
437STATICstatic void
438S_croak_xs_usage(const CV *const cv, const char *const params);
439
440STATICstatic void
441S_croak_xs_usage(const CV *const cv, const char *const params)
442{
443 const GV *const gv = CvGV(cv)Perl_CvGV( (CV *)(cv));
444
445 PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0);
446
447 if (gv) {
448 const char *const gvname = GvNAME(gv)((((XPVGV*)(gv)->sv_any)->xiv_u.xivu_namehek))->hek_key;
449 const HV *const stash = GvSTASH(gv)(((XPVGV*)(gv)->sv_any)->xnv_u.xgv_stash);
450 const char *const hvname = stash ? HvNAME(stash)((((stash)->sv_flags & 0x02000000) && ((struct
xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV*) (stash
)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name &&
( ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_count ? *
((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_names
: ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name
)) ? (( ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash
)[((XPVHV*) (stash)->sv_any)->xhv_max+1]))->xhv_name_count
? *((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_names
: ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name
))->hek_key : ((void*)0))
: NULL((void*)0);
451
452 if (hvname)
453 Perl_croak_nocontextPerl_croak("Usage: %s::%s(%s)", hvname, gvname, params);
454 else
455 Perl_croak_nocontextPerl_croak("Usage: %s(%s)", gvname, params);
456 } else {
457 /* Pants. I don't think that it should be possible to get here. */
458 Perl_croak_nocontextPerl_croak("Usage: CODE(0x%" UVxf"lx" ")(%s)", PTR2UV(cv)(UV)(cv), params);
459 }
460}
461#undef PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0)
462
463#define croak_xs_usagePerl_croak_xs_usage S_croak_xs_usage
464
465#endif
466
467/* NOTE: the prototype of newXSproto() is different in versions of perls,
468 * so we define a portable version of newXSproto()
469 */
470#ifdef newXS_flags
471#define newXSproto_portable(name, c_impl, file, proto)Perl_newXS_flags( name,c_impl,file,proto,0) newXS_flags(name, c_impl, file, proto, 0)Perl_newXS_flags( name,c_impl,file,proto,0)
472#else
473#define newXSproto_portable(name, c_impl, file, proto)Perl_newXS_flags( name,c_impl,file,proto,0) (PL_Sv=(SV*)newXS(name, c_impl, file)Perl_newXS( name,c_impl,file), sv_setpv(PL_Sv, proto)Perl_sv_setpv( PL_Sv,proto), (CV*)PL_Sv)
474#endif /* !defined(newXS_flags) */
475
476#if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5))
477# define newXS_deffile(a,b)Perl_newXS_deffile( a,b) Perl_newXS(aTHX_ a,b,file)
478#else
479# define newXS_deffile(a,b)Perl_newXS_deffile( a,b) Perl_newXS_deffile(aTHX_ a,b)
480#endif
481
482#line 483 "Bzip2.c"
483
484/* INCLUDE: Including 'constants.xs' from 'Bzip2.xs' */
485
486
487XS_EUPXS(XS_Compress__Raw__Bzip2_constant)static void XS_Compress__Raw__Bzip2_constant( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
488XS_EUPXS(XS_Compress__Raw__Bzip2_constant)static void XS_Compress__Raw__Bzip2_constant( CV* cv __attribute__
((unused)))
489{
490 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
491 if (items != 1)
492 croak_xs_usagePerl_croak_xs_usage(cv, "sv");
493 PERL_UNUSED_VAR(ax)((void)sizeof(ax)); /* -Wall */
494 SPsp -= items;
495 {
496#line 4 "./constants.xs"
497#ifdef dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
498 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
; /* Faster if we have it. */
499#else
500 dTARGETSV * targ = (PL_curpad[PL_op->op_targ]);
501#endif
502 STRLEN len;
503 int type;
504 IV iv = 0; /* avoid uninit var warning */
505 /* NV nv; Uncomment this if you need to return NVs */
506 /* const char *pv; Uncomment this if you need to return PVs */
507#line 508 "Bzip2.c"
508 SV * sv = ST(0)PL_stack_base[ax + (0)]
509;
510 const char * s = SvPV(sv, len)((((sv)->sv_flags & (0x00000400|0x00200000)) == 0x00000400
) ? ((len = ((XPV*) (sv)->sv_any)->xpv_cur), ((sv)->
sv_u.svu_pv)) : Perl_sv_2pv_flags( sv,&len,2))
;
511#line 18 "./constants.xs"
512 /* Change this to constant(aTHX_ s, len, &iv, &nv);
513 if you need to return both NVs and IVs */
514 type = constant(aTHX_ s, len, &iv);
515 /* Return 1 or 2 items. First is error message, or undef if no error.
516 Second, if present, is found value */
517 switch (type) {
518 case PERL_constant_NOTFOUND1:
519 sv =
520 sv_2mortal(newSVpvf("%s is not a valid Bzip2 macro", s))Perl_sv_2mortal( Perl_newSVpvf("%s is not a valid Bzip2 macro"
, s))
;
521 PUSHs(sv)(*++sp = (sv));
522 break;
523 case PERL_constant_NOTDEF2:
524 sv = sv_2mortal(newSVpvf(Perl_sv_2mortal( Perl_newSVpvf( "Your vendor has not defined Bzip2 macro %s, used"
, s))
525 "Your vendor has not defined Bzip2 macro %s, used",Perl_sv_2mortal( Perl_newSVpvf( "Your vendor has not defined Bzip2 macro %s, used"
, s))
526 s))Perl_sv_2mortal( Perl_newSVpvf( "Your vendor has not defined Bzip2 macro %s, used"
, s))
;
527 PUSHs(sv)(*++sp = (sv));
528 break;
529 case PERL_constant_ISIV3:
530 EXTEND(SP, 2)do { (void)0; if (__builtin_expect(((((2) < 0 || PL_stack_max
- (sp) < (2))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow
( sp,sp,(sizeof(2) > sizeof(ssize_t) && ((ssize_t)
(2) != (2)) ? -1 : (2))); ((void)sizeof(sp)); } } while (0)
;
531 PUSHs(&PL_sv_undef)(*++sp = (&(PL_sv_immortals[1])));
532 PUSHi(iv)do { do { IV TARGi_iv = iv; if (__builtin_expect((((((targ)->
sv_flags & (0xff|(0x08000000|0x00010000|0x00000800|0x01000000
|0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !
(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)0),(0))
) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0),(1))) {
((void)0); (targ)->sv_flags |= (0x00000100|0x00001000); targ
->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ,TARGi_iv
); } while (0); (*++sp = (targ)); } while (0)
;
533 break;
534 /* Uncomment this if you need to return NOs
535 case PERL_constant_ISNO:
536 EXTEND(SP, 2);
537 PUSHs(&PL_sv_undef);
538 PUSHs(&PL_sv_no);
539 break; */
540 /* Uncomment this if you need to return NVs
541 case PERL_constant_ISNV:
542 EXTEND(SP, 2);
543 PUSHs(&PL_sv_undef);
544 PUSHn(nv);
545 break; */
546 /* Uncomment this if you need to return PVs
547 case PERL_constant_ISPV:
548 EXTEND(SP, 2);
549 PUSHs(&PL_sv_undef);
550 PUSHp(pv, strlen(pv));
551 break; */
552 /* Uncomment this if you need to return PVNs
553 case PERL_constant_ISPVN:
554 EXTEND(SP, 2);
555 PUSHs(&PL_sv_undef);
556 PUSHp(pv, iv);
557 break; */
558 /* Uncomment this if you need to return SVs
559 case PERL_constant_ISSV:
560 EXTEND(SP, 2);
561 PUSHs(&PL_sv_undef);
562 PUSHs(sv);
563 break; */
564 /* Uncomment this if you need to return UNDEFs
565 case PERL_constant_ISUNDEF:
566 break; */
567 /* Uncomment this if you need to return UVs
568 case PERL_constant_ISUV:
569 EXTEND(SP, 2);
570 PUSHs(&PL_sv_undef);
571 PUSHu((UV)iv);
572 break; */
573 /* Uncomment this if you need to return YESs
574 case PERL_constant_ISYES:
575 EXTEND(SP, 2);
576 PUSHs(&PL_sv_undef);
577 PUSHs(&PL_sv_yes);
578 break; */
579 default:
580 sv = sv_2mortal(newSVpvf(Perl_sv_2mortal( Perl_newSVpvf( "Unexpected return type %d while processing Bzip2 macro %s, used"
, type, s))
581 "Unexpected return type %d while processing Bzip2 macro %s, used",Perl_sv_2mortal( Perl_newSVpvf( "Unexpected return type %d while processing Bzip2 macro %s, used"
, type, s))
582 type, s))Perl_sv_2mortal( Perl_newSVpvf( "Unexpected return type %d while processing Bzip2 macro %s, used"
, type, s))
;
583 PUSHs(sv)(*++sp = (sv));
584 }
585#line 586 "Bzip2.c"
586 PUTBACKPL_stack_sp = sp;
587 return;
588 }
589}
590
591
592/* INCLUDE: Returning to 'Bzip2.xs' from 'constants.xs' */
593
594#define bzlibversion()BZ2_bzlibVersion() BZ2_bzlibVersion()
595
596XS_EUPXS(XS_Compress__Raw__Bzip2_bzlibversion)static void XS_Compress__Raw__Bzip2_bzlibversion( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
597XS_EUPXS(XS_Compress__Raw__Bzip2_bzlibversion)static void XS_Compress__Raw__Bzip2_bzlibversion( CV* cv __attribute__
((unused)))
598{
599 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
600 if (items != 0)
601 croak_xs_usagePerl_croak_xs_usage(cv, "");
602 {
603 const char * RETVAL;
604 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
605
606 RETVAL = bzlibversion()BZ2_bzlibVersion();
607 sv_setpv(TARG, RETVAL)Perl_sv_setpv( targ,RETVAL); XSprePUSH(sp = PL_stack_base + ax - 1); PUSHTARGdo { do { if (__builtin_expect(((((targ)->sv_flags & 0x00400000
)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( targ); } while (
0); (*++sp = (targ)); } while (0)
;
608 }
609 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
610}
611
612
613XS_EUPXS(XS_Compress__Raw__Bzip2_new)static void XS_Compress__Raw__Bzip2_new( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
614XS_EUPXS(XS_Compress__Raw__Bzip2_new)static void XS_Compress__Raw__Bzip2_new( CV* cv __attribute__
((unused)))
615{
616 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
617 if (items < 1 || items > 5)
618 croak_xs_usagePerl_croak_xs_usage(cv, "className, appendOut=1, blockSize100k=1, workfactor=0, verbosity=0");
619 PERL_UNUSED_VAR(ax)((void)sizeof(ax)); /* -Wall */
620 SPsp -= items;
621 {
622 const char * className;
623 int appendOut;
624 int blockSize100k;
625 int workfactor;
626 int verbosity;
627
628 if (SvOK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00000200
|0x00000400|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000
))
)
629 className = (const char *)SvPVbyte_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x20000000
|0x00200000)) == 0x00000400) ? ((PL_stack_base[ax + (0)])->
sv_u.svu_pv) : Perl_sv_2pvbyte_flags( PL_stack_base[ax + (0)]
,0,2))
;
630 else
631 className = NULL((void*)0)
632;
633
634 if (items < 2)
635 appendOut = 1;
636 else {
637 appendOut = (int)SvIV(ST(1))((((PL_stack_base[ax + (1)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (1)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
1)],2))
638;
639 }
640
641 if (items < 3)
642 blockSize100k = 1;
643 else {
644 blockSize100k = (int)SvIV(ST(2))((((PL_stack_base[ax + (2)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (2)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
2)],2))
645;
646 }
647
648 if (items < 4)
649 workfactor = 0;
650 else {
651 workfactor = (int)SvIV(ST(3))((((PL_stack_base[ax + (3)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (3)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
3)],2))
652;
653 }
654
655 if (items < 5)
656 verbosity = 0;
657 else {
658 verbosity = (int)SvIV(ST(4))((((PL_stack_base[ax + (4)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (4)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
4)],2))
659;
660 }
661#line 356 "Bzip2.xs"
662 {
663 int err ;
664 deflateStream s ;
665#if 0
666 /* if (trace) */
667 warnPerl_warn("in Compress::Raw::Bzip2::_new(items=%d,appendOut=%d, blockSize100k=%d, workfactor=%d, verbosity=%d\n",
668 items, appendOut, blockSize100k, workfactor, verbosity);
669#endif
670 if ((s = InitStream() )) {
671
672 err = BZ2_bzCompressInit ( &(s->stream),
673 blockSize100k,
674 verbosity,
675 workfactor );
676
677 if (err != BZ_OK0) {
678 Safefree(s)Perl_safesysfree(((void *)(s))) ;
679 s = NULL((void*)0) ;
680 }
681 else {
682 int flags = 0 ;
683 if (appendOut)
684 flags |= FLAG_APPEND_OUTPUT1;
Value stored to 'flags' is never read
685 PostInitStream(s, appendOut ? FLAG_APPEND_OUTPUT1 :0) ;
686 }
687 }
688 else
689 err = BZ_MEM_ERROR(-3) ;
690
691 {
692 SV* obj = sv_setref_pv(sv_newmortal(), className, (void*)s)Perl_sv_setref_pv( Perl_sv_newmortal(),className,(void*)s);
693 XPUSHs(obj)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max
- (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow
( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t)
(1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); *
++sp = (obj); } while (0)
;
694 }
695 if(0)
696 {
697 SV* obj = sv_2mortal(newSViv(PTR2IV(s)))Perl_sv_2mortal( Perl_newSViv( (IV)(s))) ;
698 XPUSHs(obj)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max
- (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow
( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t)
(1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); *
++sp = (obj); } while (0)
;
699 }
700 if (GIMME(PL_op->op_flags & 3 ? ((PL_op->op_flags & 3) ==
3 ? 3 : 2) : Perl_dowantarray())
== G_ARRAY3) {
701 SV * sv = sv_2mortal(newSViv(err))Perl_sv_2mortal( Perl_newSViv( err)) ;
702 setDUALstatus(sv, err)Perl_sv_setnv( sv,(double)err) ; Perl_sv_setpv( sv,((err) ? GetErrorString
(err) : "")) ; ( (sv)->sv_flags |= (0x00000200|0x00002000)
);
;
703 XPUSHs(sv)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max
- (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow
( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t)
(1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); *
++sp = (sv); } while (0)
;
704 }
705 }
706#line 707 "Bzip2.c"
707 PUTBACKPL_stack_sp = sp;
708 return;
709 }
710}
711
712
713XS_EUPXS(XS_Compress__Raw__Bunzip2_new)static void XS_Compress__Raw__Bunzip2_new( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
714XS_EUPXS(XS_Compress__Raw__Bunzip2_new)static void XS_Compress__Raw__Bunzip2_new( CV* cv __attribute__
((unused)))
715{
716 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
717 if (items < 1 || items > 6)
718 croak_xs_usagePerl_croak_xs_usage(cv, "className, appendOut=1, consume=1, small=0, verbosity=0, limitOutput=0");
719 PERL_UNUSED_VAR(ax)((void)sizeof(ax)); /* -Wall */
720 SPsp -= items;
721 {
722 const char* className;
723 int appendOut;
724 int consume;
725 int small;
726 int verbosity;
727 int limitOutput;
728
729 if (SvOK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00000200
|0x00000400|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000
))
)
730 className = (const char *)SvPVbyte_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x20000000
|0x00200000)) == 0x00000400) ? ((PL_stack_base[ax + (0)])->
sv_u.svu_pv) : Perl_sv_2pvbyte_flags( PL_stack_base[ax + (0)]
,0,2))
;
731 else
732 className = NULL((void*)0)
733;
734
735 if (items < 2)
736 appendOut = 1;
737 else {
738 appendOut = (int)SvIV(ST(1))((((PL_stack_base[ax + (1)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (1)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
1)],2))
739;
740 }
741
742 if (items < 3)
743 consume = 1;
744 else {
745 consume = (int)SvIV(ST(2))((((PL_stack_base[ax + (2)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (2)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
2)],2))
746;
747 }
748
749 if (items < 4)
750 small = 0;
751 else {
752 small = (int)SvIV(ST(3))((((PL_stack_base[ax + (3)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (3)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
3)],2))
753;
754 }
755
756 if (items < 5)
757 verbosity = 0;
758 else {
759 verbosity = (int)SvIV(ST(4))((((PL_stack_base[ax + (4)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (4)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
4)],2))
760;
761 }
762
763 if (items < 6)
764 limitOutput = 0;
765 else {
766 limitOutput = (int)SvIV(ST(5))((((PL_stack_base[ax + (5)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (5)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
5)],2))
767;
768 }
769#line 412 "Bzip2.xs"
770 {
771 int err = BZ_OK0 ;
772 inflateStream s ;
773#if 0
774 if (trace0)
775 warnPerl_warn("in _inflateInit(windowBits=%d, bufsize=%lu, dictionary=%lu\n",
776 windowBits, bufsize, (unsigned long)SvCUR(dictionary)((XPV*) (dictionary)->sv_any)->xpv_cur) ;
777#endif
778 if ((s = InitStream() )) {
779
780 err = BZ2_bzDecompressInit (&(s->stream), verbosity, small);
781 if (err != BZ_OK0) {
782 Safefree(s)Perl_safesysfree(((void *)(s))) ;
783 s = NULL((void*)0) ;
784 }
785 if (s) {
786 int flags = 0;
787 if (appendOut)
788 flags |= FLAG_APPEND_OUTPUT1;
789 if (consume)
790 flags |= FLAG_CONSUME_INPUT8;
791 if (limitOutput)
792 flags |= (FLAG_LIMIT_OUTPUT16|FLAG_CONSUME_INPUT8);
793 PostInitStream(s, flags) ;
794 }
795 }
796 else
797 err = BZ_MEM_ERROR(-3) ;
798
799 {
800 SV* obj = sv_setref_pv(sv_newmortal(), className, (void*)s)Perl_sv_setref_pv( Perl_sv_newmortal(),className,(void*)s);
801 XPUSHs(obj)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max
- (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow
( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t)
(1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); *
++sp = (obj); } while (0)
;
802 }
803 if (0)
804 {
805 SV* obj = sv_2mortal(newSViv(PTR2IV(s)))Perl_sv_2mortal( Perl_newSViv( (IV)(s))) ;
806 XPUSHs(obj)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max
- (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow
( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t)
(1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); *
++sp = (obj); } while (0)
;
807 }
808 if (GIMME(PL_op->op_flags & 3 ? ((PL_op->op_flags & 3) ==
3 ? 3 : 2) : Perl_dowantarray())
== G_ARRAY3) {
809 SV * sv = sv_2mortal(newSViv(err))Perl_sv_2mortal( Perl_newSViv( err)) ;
810 setDUALstatus(sv, err)Perl_sv_setnv( sv,(double)err) ; Perl_sv_setpv( sv,((err) ? GetErrorString
(err) : "")) ; ( (sv)->sv_flags |= (0x00000200|0x00002000)
);
;
811 XPUSHs(sv)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max
- (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow
( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t)
(1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); *
++sp = (sv); } while (0)
;
812 }
813 }
814#line 815 "Bzip2.c"
815 PUTBACKPL_stack_sp = sp;
816 return;
817 }
818}
819
820
821XS_EUPXS(XS_Compress__Raw__Bzip2_DispStream)static void XS_Compress__Raw__Bzip2_DispStream( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
822XS_EUPXS(XS_Compress__Raw__Bzip2_DispStream)static void XS_Compress__Raw__Bzip2_DispStream( CV* cv __attribute__
((unused)))
823{
824 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
825 if (items < 1 || items > 2)
826 croak_xs_usagePerl_croak_xs_usage(cv, "s, message=NULL");
827 {
828 Compress__Raw__Bzip2 s;
829 const char * message;
830
831 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bzip2"
)
) {
832 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
833 s = INT2PTR(Compress__Raw__Bzip2,tmp)(Compress__Raw__Bzip2)(tmp);
834 }
835 else
836 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
837 "Compress::Raw::Bzip2::DispStream",
838 "s", "Compress::Raw::Bzip2")
839;
840
841 if (items < 2)
842 message = NULL((void*)0);
843 else {
844 if (SvOK(ST(1))((PL_stack_base[ax + (1)])->sv_flags & (0x00000100|0x00000200
|0x00000400|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000
))
)
845 message = (const char *)SvPVbyte_nolen(ST(1))((((PL_stack_base[ax + (1)])->sv_flags & (0x00000400|0x20000000
|0x00200000)) == 0x00000400) ? ((PL_stack_base[ax + (1)])->
sv_u.svu_pv) : Perl_sv_2pvbyte_flags( PL_stack_base[ax + (1)]
,0,2))
;
846 else
847 message = NULL((void*)0)
848;
849 }
850
851 DispStream(s, message);
852 }
853 XSRETURN_EMPTYdo { do { const IV tmpXSoff = (0); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0); } while (0)
;
854}
855
856
857XS_EUPXS(XS_Compress__Raw__Bzip2_bzdeflate)static void XS_Compress__Raw__Bzip2_bzdeflate( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
858XS_EUPXS(XS_Compress__Raw__Bzip2_bzdeflate)static void XS_Compress__Raw__Bzip2_bzdeflate( CV* cv __attribute__
((unused)))
859{
860 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
861 if (items != 3)
862 croak_xs_usagePerl_croak_xs_usage(cv, "s, buf, output");
863 {
864 Compress__Raw__Bzip2 s;
865 SV * buf = ST(1)PL_stack_base[ax + (1)]
866;
867 SV * output = ST(2)PL_stack_base[ax + (2)]
868;
869 uInt cur_length;
870 uInt increment;
871 int RETVAL = 0;
872 uInt bufinc;
873 STRLEN origlen;
874
875 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bzip2"
)
) {
876 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
877 s = INT2PTR(Compress__Raw__Bzip2,tmp)(Compress__Raw__Bzip2)(tmp);
878 }
879 else
880 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
881 "Compress::Raw::Bzip2::bzdeflate",
882 "s", "Compress::Raw::Bzip2")
883;
884#line 477 "Bzip2.xs"
885 bufinc = s->bufsize;
886
887 /* If the input buffer is a reference, dereference it */
888 buf = deRef(buf, "deflate") ;
889
890 /* initialise the input buffer */
891#ifdef UTF8_AVAILABLE
892 if (DO_UTF8(buf)(((buf)->sv_flags & 0x20000000) && !__builtin_expect
(((((PL_curcop)->cop_hints + 0) & 0x00000008) ? (_Bool
)1 : (_Bool)0),(0)))
&& !sv_utf8_downgrade(buf, 1)Perl_sv_utf8_downgrade_flags( buf,1,2))
893 croakPerl_croak("Wide character in " COMPRESS_CLASS"Compress::Raw::Bzip2" "::bzdeflate input parameter");
894#endif
895 s->stream.next_in = (char*)SvPV_nomg(buf, origlen)((((buf)->sv_flags & (0x00000400|0x00200000)) == 0x00000400
) ? ((origlen = ((XPV*) (buf)->sv_any)->xpv_cur), ((buf
)->sv_u.svu_pv)) : Perl_sv_2pv_flags( buf,&origlen,0))
;
896 s->stream.avail_in = (unsigned int) origlen;
897
898 /* and retrieve the output buffer */
899 output = deRef_l(output, "deflate") ;
900#ifdef UTF8_AVAILABLE
901 if (DO_UTF8(output)(((output)->sv_flags & 0x20000000) && !__builtin_expect
(((((PL_curcop)->cop_hints + 0) & 0x00000008) ? (_Bool
)1 : (_Bool)0),(0)))
&& !sv_utf8_downgrade(output, 1)Perl_sv_utf8_downgrade_flags( output,1,2))
902 croakPerl_croak("Wide character in " COMPRESS_CLASS"Compress::Raw::Bzip2" "::bzdeflate output parameter");
903#endif
904
905 if((s->flags & FLAG_APPEND_OUTPUT1) != FLAG_APPEND_OUTPUT1) {
906 SvCUR_set(output, 0)do { ((void)0); ((void)0); ((void)0); (((XPV*) (output)->sv_any
)->xpv_cur = (0)); } while (0)
;
907 /* sv_setpvn(output, "", 0); */
908 }
909 cur_length = SvCUR(output)((XPV*) (output)->sv_any)->xpv_cur ;
910 s->stream.next_out = (char*) SvPVX(output)((output)->sv_u.svu_pv) + cur_length;
911 increment = SvLEN(output)((XPV*) (output)->sv_any)->xpv_len_u.xpvlenu_len - cur_length;
912 s->stream.avail_out = increment;
913 while (s->stream.avail_in != 0) {
914
915 if (s->stream.avail_out == 0) {
916 /* out of space in the output buffer so make it bigger */
917 s->stream.next_out = Sv_Grow(output, SvLEN(output) + bufinc)Perl_sv_grow( output,((XPV*) (output)->sv_any)->xpv_len_u
.xpvlenu_len + bufinc)
;
918 cur_length += increment ;
919 s->stream.next_out += cur_length ;
920 increment = bufinc ;
921 s->stream.avail_out = increment;
922 bufinc *= 2 ;
923 }
924
925 RETVAL = BZ2_bzCompress(&(s->stream), BZ_RUN0);
926 if (RETVAL != BZ_RUN_OK1)
927 break;
928 }
929
930 s->compressedBytes += cur_length + increment - s->stream.avail_out ;
931 s->uncompressedBytes += origlen - s->stream.avail_in ;
932
933 s->last_error = RETVAL ;
934 if (RETVAL == BZ_RUN_OK1) {
935 SvPOK_only(output)( (output)->sv_flags &= ~((0x00000100|0x00000200|0x00000400
|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000)| 0x80000000
|0x20000000), (output)->sv_flags |= (0x00000400|0x00004000
))
;
936 SvCUR_set(output, cur_length + increment - s->stream.avail_out)do { ((void)0); ((void)0); ((void)0); (((XPV*) (output)->sv_any
)->xpv_cur = (cur_length + increment - s->stream.avail_out
)); } while (0)
;
937 SvSETMAGIC(output)do { if (__builtin_expect(((((output)->sv_flags & 0x00400000
)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( output); } while
(0)
;
938 }
939#line 940 "Bzip2.c"
940 {
941 SV * RETVALSV;
942 RETVALSV = sv_newmortal()Perl_sv_newmortal();
943 setDUALstatus(RETVALSV, RETVAL)Perl_sv_setnv( RETVALSV,(double)RETVAL) ; Perl_sv_setpv( RETVALSV
,((RETVAL) ? GetErrorString(RETVAL) : "")) ; ( (RETVALSV)->
sv_flags |= (0x00000200|0x00002000));
;
944 ST(0)PL_stack_base[ax + (0)] = RETVALSV;
945 }
946 }
947 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
948}
949
950
951XS_EUPXS(XS_Compress__Raw__Bzip2_DESTROY)static void XS_Compress__Raw__Bzip2_DESTROY( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
952XS_EUPXS(XS_Compress__Raw__Bzip2_DESTROY)static void XS_Compress__Raw__Bzip2_DESTROY( CV* cv __attribute__
((unused)))
953{
954 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
955 if (items != 1)
956 croak_xs_usagePerl_croak_xs_usage(cv, "s");
957 {
958 Compress__Raw__Bzip2 s;
959
960 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800)) {
961 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
962 s = INT2PTR(Compress__Raw__Bzip2,tmp)(Compress__Raw__Bzip2)(tmp);
963 }
964 else
965 Perl_croak_nocontextPerl_croak("%s: %s is not a reference",
966 "Compress::Raw::Bzip2::DESTROY",
967 "s")
968;
969#line 539 "Bzip2.xs"
970 BZ2_bzCompressEnd(&s->stream) ;
971 Safefree(s)Perl_safesysfree(((void *)(s))) ;
972#line 973 "Bzip2.c"
973 }
974 XSRETURN_EMPTYdo { do { const IV tmpXSoff = (0); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0); } while (0)
;
975}
976
977
978XS_EUPXS(XS_Compress__Raw__Bzip2_bzclose)static void XS_Compress__Raw__Bzip2_bzclose( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
979XS_EUPXS(XS_Compress__Raw__Bzip2_bzclose)static void XS_Compress__Raw__Bzip2_bzclose( CV* cv __attribute__
((unused)))
980{
981 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
982 if (items != 2)
983 croak_xs_usagePerl_croak_xs_usage(cv, "s, output");
984 {
985 Compress__Raw__Bzip2 s;
986 SV * output = ST(1)PL_stack_base[ax + (1)]
987;
988 uInt cur_length;
989 uInt increment;
990 uInt bufinc;
991 DualType RETVAL;
992
993 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bzip2"
)
) {
994 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
995 s = INT2PTR(Compress__Raw__Bzip2,tmp)(Compress__Raw__Bzip2)(tmp);
996 }
997 else
998 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
999 "Compress::Raw::Bzip2::bzclose",
1000 "s", "Compress::Raw::Bzip2")
1001;
1002#line 551 "Bzip2.xs"
1003 bufinc = s->bufsize;
1004
1005 s->stream.avail_in = 0; /* should be zero already anyway */
1006
1007 /* retrieve the output buffer */
1008 output = deRef_l(output, "close") ;
1009#ifdef UTF8_AVAILABLE
1010 if (DO_UTF8(output)(((output)->sv_flags & 0x20000000) && !__builtin_expect
(((((PL_curcop)->cop_hints + 0) & 0x00000008) ? (_Bool
)1 : (_Bool)0),(0)))
&& !sv_utf8_downgrade(output, 1)Perl_sv_utf8_downgrade_flags( output,1,2))
1011 croakPerl_croak("Wide character in " COMPRESS_CLASS"Compress::Raw::Bzip2" "::bzclose input parameter");
1012#endif
1013 if((s->flags & FLAG_APPEND_OUTPUT1) != FLAG_APPEND_OUTPUT1) {
1014 SvCUR_set(output, 0)do { ((void)0); ((void)0); ((void)0); (((XPV*) (output)->sv_any
)->xpv_cur = (0)); } while (0)
;
1015 /* sv_setpvn(output, "", 0); */
1016 }
1017 cur_length = SvCUR(output)((XPV*) (output)->sv_any)->xpv_cur ;
1018 s->stream.next_out = (char*) SvPVX(output)((output)->sv_u.svu_pv) + cur_length;
1019 increment = SvLEN(output)((XPV*) (output)->sv_any)->xpv_len_u.xpvlenu_len - cur_length;
1020 s->stream.avail_out = increment;
1021
1022 for (;;) {
1023 if (s->stream.avail_out == 0) {
1024 /* consumed all the available output, so extend it */
1025 s->stream.next_out = Sv_Grow(output, SvLEN(output) + bufinc)Perl_sv_grow( output,((XPV*) (output)->sv_any)->xpv_len_u
.xpvlenu_len + bufinc)
;
1026 cur_length += increment ;
1027 s->stream.next_out += cur_length ;
1028 increment = bufinc ;
1029 s->stream.avail_out = increment;
1030 bufinc *= 2 ;
1031 }
1032 RETVAL = BZ2_bzCompress(&(s->stream), BZ_FINISH2);
1033
1034 /* deflate has finished flushing only when it hasn't used up
1035 * all the available space in the output buffer:
1036 */
1037 /* if (s->stream.avail_out != 0 || RETVAL < 0 ) */
1038 if (RETVAL == BZ_STREAM_END4 || RETVAL < 0 )
1039 break;
1040 }
1041
1042 /* RETVAL = (RETVAL == BZ_STREAM_END ? BZ_OK : RETVAL) ; */
1043 s->last_error = RETVAL ;
1044
1045 s->compressedBytes += cur_length + increment - s->stream.avail_out ;
1046
1047 if (RETVAL == BZ_STREAM_END4) {
1048 SvPOK_only(output)( (output)->sv_flags &= ~((0x00000100|0x00000200|0x00000400
|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000)| 0x80000000
|0x20000000), (output)->sv_flags |= (0x00000400|0x00004000
))
;
1049 SvCUR_set(output, cur_length + increment - s->stream.avail_out)do { ((void)0); ((void)0); ((void)0); (((XPV*) (output)->sv_any
)->xpv_cur = (cur_length + increment - s->stream.avail_out
)); } while (0)
;
1050 SvSETMAGIC(output)do { if (__builtin_expect(((((output)->sv_flags & 0x00400000
)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( output); } while
(0)
;
1051 }
1052#line 1053 "Bzip2.c"
1053 {
1054 SV * RETVALSV;
1055 RETVALSV = sv_newmortal()Perl_sv_newmortal();
1056 setDUALstatus(RETVALSV, RETVAL)Perl_sv_setnv( RETVALSV,(double)RETVAL) ; Perl_sv_setpv( RETVALSV
,((RETVAL) ? GetErrorString(RETVAL) : "")) ; ( (RETVALSV)->
sv_flags |= (0x00000200|0x00002000));
;
1057 ST(0)PL_stack_base[ax + (0)] = RETVALSV;
1058 }
1059 }
1060 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1061}
1062
1063
1064XS_EUPXS(XS_Compress__Raw__Bzip2_bzflush)static void XS_Compress__Raw__Bzip2_bzflush( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1065XS_EUPXS(XS_Compress__Raw__Bzip2_bzflush)static void XS_Compress__Raw__Bzip2_bzflush( CV* cv __attribute__
((unused)))
1066{
1067 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1068 if (items != 2)
1069 croak_xs_usagePerl_croak_xs_usage(cv, "s, output");
1070 {
1071 Compress__Raw__Bzip2 s;
1072 SV * output = ST(1)PL_stack_base[ax + (1)]
1073;
1074 uInt cur_length;
1075 uInt increment;
1076 uInt bufinc;
1077 DualType RETVAL;
1078
1079 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bzip2"
)
) {
1080 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1081 s = INT2PTR(Compress__Raw__Bzip2,tmp)(Compress__Raw__Bzip2)(tmp);
1082 }
1083 else
1084 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1085 "Compress::Raw::Bzip2::bzflush",
1086 "s", "Compress::Raw::Bzip2")
1087;
1088#line 612 "Bzip2.xs"
1089 bufinc = s->bufsize;
1090
1091 s->stream.avail_in = 0; /* should be zero already anyway */
1092
1093 /* retrieve the output buffer */
1094 output = deRef_l(output, "close") ;
1095#ifdef UTF8_AVAILABLE
1096 if (DO_UTF8(output)(((output)->sv_flags & 0x20000000) && !__builtin_expect
(((((PL_curcop)->cop_hints + 0) & 0x00000008) ? (_Bool
)1 : (_Bool)0),(0)))
&& !sv_utf8_downgrade(output, 1)Perl_sv_utf8_downgrade_flags( output,1,2))
1097 croakPerl_croak("Wide character in " COMPRESS_CLASS"Compress::Raw::Bzip2" "::bzflush input parameter");
1098#endif
1099 if((s->flags & FLAG_APPEND_OUTPUT1) != FLAG_APPEND_OUTPUT1) {
1100 SvCUR_set(output, 0)do { ((void)0); ((void)0); ((void)0); (((XPV*) (output)->sv_any
)->xpv_cur = (0)); } while (0)
;
1101 /* sv_setpvn(output, "", 0); */
1102 }
1103 cur_length = SvCUR(output)((XPV*) (output)->sv_any)->xpv_cur ;
1104 s->stream.next_out = (char*) SvPVX(output)((output)->sv_u.svu_pv) + cur_length;
1105 increment = SvLEN(output)((XPV*) (output)->sv_any)->xpv_len_u.xpvlenu_len - cur_length;
1106 s->stream.avail_out = increment;
1107
1108 for (;;) {
1109 if (s->stream.avail_out == 0) {
1110 /* consumed all the available output, so extend it */
1111 s->stream.next_out = Sv_Grow(output, SvLEN(output) + bufinc)Perl_sv_grow( output,((XPV*) (output)->sv_any)->xpv_len_u
.xpvlenu_len + bufinc)
;
1112 cur_length += increment ;
1113 s->stream.next_out += cur_length ;
1114 increment = bufinc ;
1115 s->stream.avail_out = increment;
1116 bufinc *= 2 ;
1117 }
1118 RETVAL = BZ2_bzCompress(&(s->stream), BZ_FLUSH1);
1119
1120 if (RETVAL == BZ_RUN_OK1 || RETVAL < 0)
1121 break;
1122
1123 /* deflate has finished flushing only when it hasn't used up
1124 * all the available space in the output buffer:
1125 */
1126 /* RETVAL == if (s->stream.avail_out != 0 || RETVAL < 0 )
1127 break; */
1128 }
1129
1130 /* RETVAL = (RETVAL == BZ_STREAM_END ? BZ_OK : RETVAL) ; */
1131 s->last_error = RETVAL ;
1132
1133 s->compressedBytes += cur_length + increment - s->stream.avail_out ;
1134
1135 if (RETVAL == BZ_RUN_OK1) {
1136 SvPOK_only(output)( (output)->sv_flags &= ~((0x00000100|0x00000200|0x00000400
|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000)| 0x80000000
|0x20000000), (output)->sv_flags |= (0x00000400|0x00004000
))
;
1137 SvCUR_set(output, cur_length + increment - s->stream.avail_out)do { ((void)0); ((void)0); ((void)0); (((XPV*) (output)->sv_any
)->xpv_cur = (cur_length + increment - s->stream.avail_out
)); } while (0)
;
1138 SvSETMAGIC(output)do { if (__builtin_expect(((((output)->sv_flags & 0x00400000
)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( output); } while
(0)
;
1139 }
1140#line 1141 "Bzip2.c"
1141 {
1142 SV * RETVALSV;
1143 RETVALSV = sv_newmortal()Perl_sv_newmortal();
1144 setDUALstatus(RETVALSV, RETVAL)Perl_sv_setnv( RETVALSV,(double)RETVAL) ; Perl_sv_setpv( RETVALSV
,((RETVAL) ? GetErrorString(RETVAL) : "")) ; ( (RETVALSV)->
sv_flags |= (0x00000200|0x00002000));
;
1145 ST(0)PL_stack_base[ax + (0)] = RETVALSV;
1146 }
1147 }
1148 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1149}
1150
1151
1152XS_EUPXS(XS_Compress__Raw__Bzip2_total_in_lo32)static void XS_Compress__Raw__Bzip2_total_in_lo32( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1153XS_EUPXS(XS_Compress__Raw__Bzip2_total_in_lo32)static void XS_Compress__Raw__Bzip2_total_in_lo32( CV* cv __attribute__
((unused)))
1154{
1155 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1156 if (items != 1)
1157 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1158 {
1159 Compress__Raw__Bzip2 s;
1160 uLong RETVAL;
1161 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1162
1163 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bzip2"
)
) {
1164 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1165 s = INT2PTR(Compress__Raw__Bzip2,tmp)(Compress__Raw__Bzip2)(tmp);
1166 }
1167 else
1168 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1169 "Compress::Raw::Bzip2::total_in_lo32",
1170 "s", "Compress::Raw::Bzip2")
1171;
1172#line 670 "Bzip2.xs"
1173 RETVAL = s->stream.total_in_lo32 ;
1174#line 1175 "Bzip2.c"
1175 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1176 }
1177 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1178}
1179
1180
1181XS_EUPXS(XS_Compress__Raw__Bzip2_total_out_lo32)static void XS_Compress__Raw__Bzip2_total_out_lo32( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1182XS_EUPXS(XS_Compress__Raw__Bzip2_total_out_lo32)static void XS_Compress__Raw__Bzip2_total_out_lo32( CV* cv __attribute__
((unused)))
1183{
1184 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1185 if (items != 1)
1186 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1187 {
1188 Compress__Raw__Bzip2 s;
1189 uLong RETVAL;
1190 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1191
1192 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bzip2"
)
) {
1193 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1194 s = INT2PTR(Compress__Raw__Bzip2,tmp)(Compress__Raw__Bzip2)(tmp);
1195 }
1196 else
1197 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1198 "Compress::Raw::Bzip2::total_out_lo32",
1199 "s", "Compress::Raw::Bzip2")
1200;
1201#line 678 "Bzip2.xs"
1202 RETVAL = s->stream.total_out_lo32 ;
1203#line 1204 "Bzip2.c"
1204 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1205 }
1206 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1207}
1208
1209
1210XS_EUPXS(XS_Compress__Raw__Bzip2_compressedBytes)static void XS_Compress__Raw__Bzip2_compressedBytes( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1211XS_EUPXS(XS_Compress__Raw__Bzip2_compressedBytes)static void XS_Compress__Raw__Bzip2_compressedBytes( CV* cv __attribute__
((unused)))
1212{
1213 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1214 if (items != 1)
1215 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1216 {
1217 Compress__Raw__Bzip2 s;
1218 uLong RETVAL;
1219 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1220
1221 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bzip2"
)
) {
1222 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1223 s = INT2PTR(Compress__Raw__Bzip2,tmp)(Compress__Raw__Bzip2)(tmp);
1224 }
1225 else
1226 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1227 "Compress::Raw::Bzip2::compressedBytes",
1228 "s", "Compress::Raw::Bzip2")
1229;
1230#line 686 "Bzip2.xs"
1231 RETVAL = s->compressedBytes;
1232#line 1233 "Bzip2.c"
1233 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1234 }
1235 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1236}
1237
1238
1239XS_EUPXS(XS_Compress__Raw__Bzip2_uncompressedBytes)static void XS_Compress__Raw__Bzip2_uncompressedBytes( CV* cv
__attribute__((unused)))
; /* prototype to pass -Wmissing-prototypes */
1240XS_EUPXS(XS_Compress__Raw__Bzip2_uncompressedBytes)static void XS_Compress__Raw__Bzip2_uncompressedBytes( CV* cv
__attribute__((unused)))
1241{
1242 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1243 if (items != 1)
1244 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1245 {
1246 Compress__Raw__Bzip2 s;
1247 uLong RETVAL;
1248 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1249
1250 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bzip2"
)
) {
1251 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1252 s = INT2PTR(Compress__Raw__Bzip2,tmp)(Compress__Raw__Bzip2)(tmp);
1253 }
1254 else
1255 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1256 "Compress::Raw::Bzip2::uncompressedBytes",
1257 "s", "Compress::Raw::Bzip2")
1258;
1259#line 694 "Bzip2.xs"
1260 RETVAL = s->uncompressedBytes;
1261#line 1262 "Bzip2.c"
1262 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1263 }
1264 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1265}
1266
1267
1268XS_EUPXS(XS_Compress__Raw__Bunzip2_DispStream)static void XS_Compress__Raw__Bunzip2_DispStream( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1269XS_EUPXS(XS_Compress__Raw__Bunzip2_DispStream)static void XS_Compress__Raw__Bunzip2_DispStream( CV* cv __attribute__
((unused)))
1270{
1271 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1272 if (items < 1 || items > 2)
1273 croak_xs_usagePerl_croak_xs_usage(cv, "s, message=NULL");
1274 {
1275 Compress__Raw__Bunzip2 s;
1276 const char * message;
1277
1278 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bunzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bunzip2"
)
) {
1279 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1280 s = INT2PTR(Compress__Raw__Bunzip2,tmp)(Compress__Raw__Bunzip2)(tmp);
1281 }
1282 else
1283 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1284 "Compress::Raw::Bunzip2::DispStream",
1285 "s", "Compress::Raw::Bunzip2")
1286;
1287
1288 if (items < 2)
1289 message = NULL((void*)0);
1290 else {
1291 if (SvOK(ST(1))((PL_stack_base[ax + (1)])->sv_flags & (0x00000100|0x00000200
|0x00000400|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000
))
)
1292 message = (const char *)SvPVbyte_nolen(ST(1))((((PL_stack_base[ax + (1)])->sv_flags & (0x00000400|0x20000000
|0x00200000)) == 0x00000400) ? ((PL_stack_base[ax + (1)])->
sv_u.svu_pv) : Perl_sv_2pvbyte_flags( PL_stack_base[ax + (1)]
,0,2))
;
1293 else
1294 message = NULL((void*)0)
1295;
1296 }
1297
1298 DispStream(s, message);
1299 }
1300 XSRETURN_EMPTYdo { do { const IV tmpXSoff = (0); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0); } while (0)
;
1301}
1302
1303
1304XS_EUPXS(XS_Compress__Raw__Bunzip2_bzinflate)static void XS_Compress__Raw__Bunzip2_bzinflate( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1305XS_EUPXS(XS_Compress__Raw__Bunzip2_bzinflate)static void XS_Compress__Raw__Bunzip2_bzinflate( CV* cv __attribute__
((unused)))
1306{
1307 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1308 if (items != 3)
1309 croak_xs_usagePerl_croak_xs_usage(cv, "s, buf, output");
1310 {
1311 Compress__Raw__Bunzip2 s;
1312 SV * buf = ST(1)PL_stack_base[ax + (1)]
1313;
1314 SV * output = ST(2)PL_stack_base[ax + (2)]
1315;
1316 uInt cur_length = 0;
1317 uInt prefix_length = 0;
1318 uInt increment = 0;
1319 uInt bufinc;
1320 STRLEN na;
1321 STRLEN origlen;
1322#line 718 "Bzip2.xs"
1323#ifdef UTF8_AVAILABLE
1324 bool_Bool out_utf8 = FALSE(0);
1325#endif
1326#line 1327 "Bzip2.c"
1327 DualType RETVAL;
1328
1329 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bunzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bunzip2"
)
) {
1330 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1331 s = INT2PTR(Compress__Raw__Bunzip2,tmp)(Compress__Raw__Bunzip2)(tmp);
1332 }
1333 else
1334 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1335 "Compress::Raw::Bunzip2::bzinflate",
1336 "s", "Compress::Raw::Bunzip2")
1337;
1338#line 722 "Bzip2.xs"
1339 bufinc = s->bufsize;
1340 /* If the buffer is a reference, dereference it */
1341 buf = deRef(buf, "bzinflate") ;
1342
1343 if (s->flags & FLAG_CONSUME_INPUT8) {
1344 if (SvREADONLY(buf)((buf)->sv_flags & (0x08000000|0x00010000)))
1345 croakPerl_croak(UNCOMPRESS_CLASS"Compress::Raw::Bunzip2" "::bzinflate input parameter cannot be read-only when ConsumeInput is specified");
1346 SvPV_force(buf, na)((((buf)->sv_flags & (0x00000400|0x00000100|0x00000200
|0x00000800|0x00008000|(0x08000000|0x00010000|0x00000800|0x01000000
|0x00800000|0x10000000)|0x00200000)) == 0x00000400) ? ((na =
((XPV*) (buf)->sv_any)->xpv_cur), ((buf)->sv_u.svu_pv
)) : Perl_sv_pvn_force_flags( buf,&na,2))
;
1347 }
1348#ifdef UTF8_AVAILABLE
1349 if (DO_UTF8(buf)(((buf)->sv_flags & 0x20000000) && !__builtin_expect
(((((PL_curcop)->cop_hints + 0) & 0x00000008) ? (_Bool
)1 : (_Bool)0),(0)))
&& !sv_utf8_downgrade(buf, 1)Perl_sv_utf8_downgrade_flags( buf,1,2))
1350 croakPerl_croak("Wide character in " UNCOMPRESS_CLASS"Compress::Raw::Bunzip2" "::bzinflate input parameter");
1351#endif
1352
1353 /* initialise the input buffer */
1354 s->stream.next_in = (char*)SvPV_nomg(buf, origlen)((((buf)->sv_flags & (0x00000400|0x00200000)) == 0x00000400
) ? ((origlen = ((XPV*) (buf)->sv_any)->xpv_cur), ((buf
)->sv_u.svu_pv)) : Perl_sv_2pv_flags( buf,&origlen,0))
;
1355 s->stream.avail_in = (unsigned int) origlen;
1356
1357 /* and retrieve the output buffer */
1358 output = deRef_l(output, "bzinflate") ;
1359#ifdef UTF8_AVAILABLE
1360 if (DO_UTF8(output)(((output)->sv_flags & 0x20000000) && !__builtin_expect
(((((PL_curcop)->cop_hints + 0) & 0x00000008) ? (_Bool
)1 : (_Bool)0),(0)))
)
1361 out_utf8 = TRUE(1) ;
1362 if (DO_UTF8(output)(((output)->sv_flags & 0x20000000) && !__builtin_expect
(((((PL_curcop)->cop_hints + 0) & 0x00000008) ? (_Bool
)1 : (_Bool)0),(0)))
&& !sv_utf8_downgrade(output, 1)Perl_sv_utf8_downgrade_flags( output,1,2))
1363 croakPerl_croak("Wide character in " UNCOMPRESS_CLASS"Compress::Raw::Bunzip2" "::bzinflate output parameter");
1364#endif
1365 if((s->flags & FLAG_APPEND_OUTPUT1) != FLAG_APPEND_OUTPUT1) {
1366 SvCUR_set(output, 0)do { ((void)0); ((void)0); ((void)0); (((XPV*) (output)->sv_any
)->xpv_cur = (0)); } while (0)
;
1367 }
1368
1369 /* Assume no output buffer - the code below will update if there is any available */
1370 s->stream.avail_out = 0;
1371
1372 if (SvLEN(output)((XPV*) (output)->sv_any)->xpv_len_u.xpvlenu_len) {
1373 prefix_length = cur_length = SvCUR(output)((XPV*) (output)->sv_any)->xpv_cur ;
1374
1375 if (s->flags & FLAG_LIMIT_OUTPUT16 && SvLEN(output)((XPV*) (output)->sv_any)->xpv_len_u.xpvlenu_len - cur_length - 1 < bufinc)
1376 {
1377 Sv_Grow(output, bufinc + cur_length + 1)Perl_sv_grow( output,bufinc + cur_length + 1) ;
1378 }
1379
1380 /* Only setup the stream output pointers if there is spare
1381 capacity in the outout SV
1382 */
1383 if (SvLEN(output)((XPV*) (output)->sv_any)->xpv_len_u.xpvlenu_len > cur_length + 1)
1384 {
1385 s->stream.next_out = (char*) SvPVX(output)((output)->sv_u.svu_pv) + cur_length;
1386 increment = SvLEN(output)((XPV*) (output)->sv_any)->xpv_len_u.xpvlenu_len - cur_length - 1;
1387 s->stream.avail_out = increment;
1388 }
1389 }
1390
1391 s->bytesInflated = 0;
1392
1393 RETVAL = BZ_OK0;
1394
1395 while (1) {
1396
1397 if (s->stream.avail_out == 0) {
1398 /* out of space in the output buffer so make it bigger */
1399 s->stream.next_out = Sv_Grow(output, SvLEN(output) + bufinc + 1)Perl_sv_grow( output,((XPV*) (output)->sv_any)->xpv_len_u
.xpvlenu_len + bufinc + 1)
;
1400 cur_length += increment ;
1401 s->stream.next_out += cur_length ;
1402 increment = bufinc ;
1403 s->stream.avail_out = increment;
1404 bufinc *= 2 ;
1405 }
1406
1407 /* DispStream(s, "pre"); */
1408 RETVAL = BZ2_bzDecompress (&(s->stream));
1409
1410 /*
1411 printf("Status %d\n", RETVAL);
1412 DispStream(s, "apres");
1413 */
1414 if (RETVAL != BZ_OK0 || s->flags & FLAG_LIMIT_OUTPUT16)
1415 break ;
1416
1417 if (s->stream.avail_out == 0)
1418 continue ;
1419
1420 if (s->stream.avail_in == 0) {
1421 RETVAL = BZ_OK0 ;
1422 break ;
1423 }
1424
1425 }
1426
1427 s->last_error = RETVAL ;
1428 if (RETVAL == BZ_OK0 || RETVAL == BZ_STREAM_END4) {
1429 unsigned in ;
1430
1431 s->bytesInflated = cur_length + increment - s->stream.avail_out - prefix_length;
1432 s->uncompressedBytes += s->bytesInflated ;
1433 s->compressedBytes += origlen - s->stream.avail_in ;
1434
1435 SvPOK_only(output)( (output)->sv_flags &= ~((0x00000100|0x00000200|0x00000400
|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000)| 0x80000000
|0x20000000), (output)->sv_flags |= (0x00000400|0x00004000
))
;
1436 SvCUR_set(output, prefix_length + s->bytesInflated)do { ((void)0); ((void)0); ((void)0); (((XPV*) (output)->sv_any
)->xpv_cur = (prefix_length + s->bytesInflated)); } while
(0)
;
1437 *SvEND(output)((output)->sv_u.svu_pv + ((XPV*)(output)->sv_any)->xpv_cur
)
= '\0';
1438#ifdef UTF8_AVAILABLE
1439 if (out_utf8)
1440 sv_utf8_upgrade(output)Perl_sv_utf8_upgrade_flags_grow( output,2,0);
1441#endif
1442 SvSETMAGIC(output)do { if (__builtin_expect(((((output)->sv_flags & 0x00400000
)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( output); } while
(0)
;
1443
1444 /* fix the input buffer */
1445 if (s->flags & FLAG_CONSUME_INPUT8) {
1446 in = s->stream.avail_in ;
1447 SvCUR_set(buf, in)do { ((void)0); ((void)0); ((void)0); (((XPV*) (buf)->sv_any
)->xpv_cur = (in)); } while (0)
;
1448 if (in)
1449 Move(s->stream.next_in, SvPVX(buf), in, char)((void)(__builtin_expect(((((( sizeof(size_t) < sizeof(in)
|| sizeof(char) > ((size_t)1 << 8*(sizeof(size_t) -
sizeof(in)))) ? (size_t)(in) : ((size_t)-1)/sizeof(char)) >
((size_t)-1)/sizeof(char))) ? (_Bool)1 : (_Bool)0),(0)) &&
(Perl_croak_memory_wrap(),0)), ((void)0), ((void)0), (void)memmove
((char*)(((buf)->sv_u.svu_pv)),(const char*)(s->stream.
next_in), (in) * sizeof(char)))
;
1450 *SvEND(buf)((buf)->sv_u.svu_pv + ((XPV*)(buf)->sv_any)->xpv_cur
)
= '\0';
1451 SvSETMAGIC(buf)do { if (__builtin_expect(((((buf)->sv_flags & 0x00400000
)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( buf); } while (0
)
;
1452 }
1453 }
1454#line 1455 "Bzip2.c"
1455 {
1456 SV * RETVALSV;
1457 RETVALSV = sv_newmortal()Perl_sv_newmortal();
1458 setDUALstatus(RETVALSV, RETVAL)Perl_sv_setnv( RETVALSV,(double)RETVAL) ; Perl_sv_setpv( RETVALSV
,((RETVAL) ? GetErrorString(RETVAL) : "")) ; ( (RETVALSV)->
sv_flags |= (0x00000200|0x00002000));
;
1459 ST(0)PL_stack_base[ax + (0)] = RETVALSV;
1460 }
1461 }
1462 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1463}
1464
1465
1466XS_EUPXS(XS_Compress__Raw__Bunzip2_inflateCount)static void XS_Compress__Raw__Bunzip2_inflateCount( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1467XS_EUPXS(XS_Compress__Raw__Bunzip2_inflateCount)static void XS_Compress__Raw__Bunzip2_inflateCount( CV* cv __attribute__
((unused)))
1468{
1469 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1470 if (items != 1)
1471 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1472 {
1473 Compress__Raw__Bunzip2 s;
1474 uLong RETVAL;
1475 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1476
1477 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bunzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bunzip2"
)
) {
1478 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1479 s = INT2PTR(Compress__Raw__Bunzip2,tmp)(Compress__Raw__Bunzip2)(tmp);
1480 }
1481 else
1482 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1483 "Compress::Raw::Bunzip2::inflateCount",
1484 "s", "Compress::Raw::Bunzip2")
1485;
1486#line 844 "Bzip2.xs"
1487 RETVAL = s->bytesInflated;
1488#line 1489 "Bzip2.c"
1489 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1490 }
1491 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1492}
1493
1494
1495XS_EUPXS(XS_Compress__Raw__Bunzip2_DESTROY)static void XS_Compress__Raw__Bunzip2_DESTROY( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1496XS_EUPXS(XS_Compress__Raw__Bunzip2_DESTROY)static void XS_Compress__Raw__Bunzip2_DESTROY( CV* cv __attribute__
((unused)))
1497{
1498 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1499 if (items != 1)
1500 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1501 {
1502 Compress__Raw__Bunzip2 s;
1503
1504 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800)) {
1505 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1506 s = INT2PTR(Compress__Raw__Bunzip2,tmp)(Compress__Raw__Bunzip2)(tmp);
1507 }
1508 else
1509 Perl_croak_nocontextPerl_croak("%s: %s is not a reference",
1510 "Compress::Raw::Bunzip2::DESTROY",
1511 "s")
1512;
1513#line 853 "Bzip2.xs"
1514 BZ2_bzDecompressEnd(&s->stream) ;
1515 Safefree(s)Perl_safesysfree(((void *)(s))) ;
1516#line 1517 "Bzip2.c"
1517 }
1518 XSRETURN_EMPTYdo { do { const IV tmpXSoff = (0); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0); } while (0)
;
1519}
1520
1521
1522XS_EUPXS(XS_Compress__Raw__Bunzip2_status)static void XS_Compress__Raw__Bunzip2_status( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1523XS_EUPXS(XS_Compress__Raw__Bunzip2_status)static void XS_Compress__Raw__Bunzip2_status( CV* cv __attribute__
((unused)))
1524{
1525 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1526 if (items != 1)
1527 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1528 {
1529 Compress__Raw__Bunzip2 s;
1530 uLong RETVAL;
1531 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1532
1533 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bunzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bunzip2"
)
) {
1534 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1535 s = INT2PTR(Compress__Raw__Bunzip2,tmp)(Compress__Raw__Bunzip2)(tmp);
1536 }
1537 else
1538 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1539 "Compress::Raw::Bunzip2::status",
1540 "s", "Compress::Raw::Bunzip2")
1541;
1542#line 861 "Bzip2.xs"
1543 RETVAL = s->last_error ;
1544#line 1545 "Bzip2.c"
1545 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1546 }
1547 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1548}
1549
1550
1551XS_EUPXS(XS_Compress__Raw__Bunzip2_total_in_lo32)static void XS_Compress__Raw__Bunzip2_total_in_lo32( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1552XS_EUPXS(XS_Compress__Raw__Bunzip2_total_in_lo32)static void XS_Compress__Raw__Bunzip2_total_in_lo32( CV* cv __attribute__
((unused)))
1553{
1554 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1555 if (items != 1)
1556 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1557 {
1558 Compress__Raw__Bunzip2 s;
1559 uLong RETVAL;
1560 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1561
1562 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bunzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bunzip2"
)
) {
1563 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1564 s = INT2PTR(Compress__Raw__Bunzip2,tmp)(Compress__Raw__Bunzip2)(tmp);
1565 }
1566 else
1567 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1568 "Compress::Raw::Bunzip2::total_in_lo32",
1569 "s", "Compress::Raw::Bunzip2")
1570;
1571#line 869 "Bzip2.xs"
1572 RETVAL = s->stream.total_in_lo32 ;
1573#line 1574 "Bzip2.c"
1574 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1575 }
1576 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1577}
1578
1579
1580XS_EUPXS(XS_Compress__Raw__Bunzip2_total_out_lo32)static void XS_Compress__Raw__Bunzip2_total_out_lo32( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
1581XS_EUPXS(XS_Compress__Raw__Bunzip2_total_out_lo32)static void XS_Compress__Raw__Bunzip2_total_out_lo32( CV* cv __attribute__
((unused)))
1582{
1583 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1584 if (items != 1)
1585 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1586 {
1587 Compress__Raw__Bunzip2 s;
1588 uLong RETVAL;
1589 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1590
1591 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bunzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bunzip2"
)
) {
1592 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1593 s = INT2PTR(Compress__Raw__Bunzip2,tmp)(Compress__Raw__Bunzip2)(tmp);
1594 }
1595 else
1596 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1597 "Compress::Raw::Bunzip2::total_out_lo32",
1598 "s", "Compress::Raw::Bunzip2")
1599;
1600#line 877 "Bzip2.xs"
1601 RETVAL = s->stream.total_out_lo32 ;
1602#line 1603 "Bzip2.c"
1603 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1604 }
1605 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1606}
1607
1608
1609XS_EUPXS(XS_Compress__Raw__Bunzip2_compressedBytes)static void XS_Compress__Raw__Bunzip2_compressedBytes( CV* cv
__attribute__((unused)))
; /* prototype to pass -Wmissing-prototypes */
1610XS_EUPXS(XS_Compress__Raw__Bunzip2_compressedBytes)static void XS_Compress__Raw__Bunzip2_compressedBytes( CV* cv
__attribute__((unused)))
1611{
1612 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1613 if (items != 1)
1614 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1615 {
1616 Compress__Raw__Bunzip2 s;
1617 uLong RETVAL;
1618 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1619
1620 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bunzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bunzip2"
)
) {
1621 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1622 s = INT2PTR(Compress__Raw__Bunzip2,tmp)(Compress__Raw__Bunzip2)(tmp);
1623 }
1624 else
1625 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1626 "Compress::Raw::Bunzip2::compressedBytes",
1627 "s", "Compress::Raw::Bunzip2")
1628;
1629#line 885 "Bzip2.xs"
1630 RETVAL = s->compressedBytes;
1631#line 1632 "Bzip2.c"
1632 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1633 }
1634 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1635}
1636
1637
1638XS_EUPXS(XS_Compress__Raw__Bunzip2_uncompressedBytes)static void XS_Compress__Raw__Bunzip2_uncompressedBytes( CV* cv
__attribute__((unused)))
; /* prototype to pass -Wmissing-prototypes */
1639XS_EUPXS(XS_Compress__Raw__Bunzip2_uncompressedBytes)static void XS_Compress__Raw__Bunzip2_uncompressedBytes( CV* cv
__attribute__((unused)))
1640{
1641 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1642 if (items != 1)
1643 croak_xs_usagePerl_croak_xs_usage(cv, "s");
1644 {
1645 Compress__Raw__Bunzip2 s;
1646 uLong RETVAL;
1647 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
1648
1649 if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "Compress::Raw::Bunzip2")Perl_sv_derived_from( PL_stack_base[ax + (0)],"Compress::Raw::Bunzip2"
)
) {
1650 IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags
& (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) ((
SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)->
xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + (
0)])->sv_u.svu_rv),2))
;
1651 s = INT2PTR(Compress__Raw__Bunzip2,tmp)(Compress__Raw__Bunzip2)(tmp);
1652 }
1653 else
1654 Perl_croak_nocontextPerl_croak("%s: %s is not of type %s",
1655 "Compress::Raw::Bunzip2::uncompressedBytes",
1656 "s", "Compress::Raw::Bunzip2")
1657;
1658#line 893 "Bzip2.xs"
1659 RETVAL = s->uncompressedBytes;
1660#line 1661 "Bzip2.c"
1661 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((IV)RETVAL)do { do { UV TARGu_uv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= (
UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1))
) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000)
; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ
,TARGu_uv); } while (0); (*++sp = (targ)); } while (0)
;
1662 }
1663 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
1664}
1665
1666#ifdef __cplusplus
1667extern "C"
1668#endif
1669XS_EXTERNAL(boot_Compress__Raw__Bzip2)void boot_Compress__Raw__Bzip2( CV* cv __attribute__((unused)
))
; /* prototype to pass -Wmissing-prototypes */
1670XS_EXTERNAL(boot_Compress__Raw__Bzip2)void boot_Compress__Raw__Bzip2( CV* cv __attribute__((unused)
))
1671{
1672#if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5))
1673 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
1674#else
1675 dVARstruct Perl___notused_struct; dXSBOOTARGSXSAPIVERCHKI32 ax = Perl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter
)) << 16) | ((sizeof("" "2.093" "")-1) > 0xFF ? (Perl_croak
("panic: handshake overflow"), 0xFF) : (sizeof("" "2.093" "")
-1) << 8) | ((((1)) ? (_Bool)1 : (_Bool)0) ? 0x00000020
: 0) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((
((1)) ? (_Bool)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "v"
"5" "." "32" "." "0" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow"
), 0x0000001F) : (sizeof("" "v" "5" "." "32" "." "0" "")-1)))
, cv, "Bzip2.c", "v" "5" "." "32" "." "0", "2.093"); SV **mark
= PL_stack_base + ax; SV **sp = PL_stack_sp; I32 items = (I32
)(sp - mark)
;
1676#endif
1677#if (PERL_REVISION5 == 5 && PERL_VERSION32 < 9)
1678 char* file = __FILE__"Bzip2.c";
1679#else
1680 const char* file = __FILE__"Bzip2.c";
1681#endif
1682
1683 PERL_UNUSED_VAR(file)((void)sizeof(file));
1684
1685 PERL_UNUSED_VAR(cv)((void)sizeof(cv)); /* -W */
1686 PERL_UNUSED_VAR(items)((void)sizeof(items)); /* -W */
1687#if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5))
1688 XS_VERSION_BOOTCHECKPerl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter))
<< 16) | ((sizeof("" "2.093" "")-1) > 0xFF ? (Perl_croak
("panic: handshake overflow"), 0xFF) : (sizeof("" "2.093" "")
-1) << 8) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000020
: 0) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((
((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" ""
"")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow"
), 0x0000001F) : (sizeof("" "" "")-1))), cv, "Bzip2.c", items
, ax, "2.093")
;
1689# ifdef XS_APIVERSION_BOOTCHECKPerl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter))
<< 16) | ((sizeof("" "" "")-1) > 0xFF ? (Perl_croak
("panic: handshake overflow"), 0xFF) : (sizeof("" "" "")-1) <<
8) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 : 0) | ((((
0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((((0)) ? (_Bool
)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "v" "5" "." "32"
"." "0" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow"
), 0x0000001F) : (sizeof("" "v" "5" "." "32" "." "0" "")-1)))
, cv, "Bzip2.c", items, ax, "v" "5" "." "32" "." "0")
1690 XS_APIVERSION_BOOTCHECKPerl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter))
<< 16) | ((sizeof("" "" "")-1) > 0xFF ? (Perl_croak
("panic: handshake overflow"), 0xFF) : (sizeof("" "" "")-1) <<
8) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 : 0) | ((((
0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((((0)) ? (_Bool
)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "v" "5" "." "32"
"." "0" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow"
), 0x0000001F) : (sizeof("" "v" "5" "." "32" "." "0" "")-1)))
, cv, "Bzip2.c", items, ax, "v" "5" "." "32" "." "0")
;
1691# endif
1692#endif
1693
1694 newXS_deffile("Compress::Raw::Bzip2::constant", XS_Compress__Raw__Bzip2_constant)Perl_newXS_deffile( "Compress::Raw::Bzip2::constant",XS_Compress__Raw__Bzip2_constant
)
;
1695 newXS_deffile("Compress::Raw::Bzip2::bzlibversion", XS_Compress__Raw__Bzip2_bzlibversion)Perl_newXS_deffile( "Compress::Raw::Bzip2::bzlibversion",XS_Compress__Raw__Bzip2_bzlibversion
)
;
1696 newXS_deffile("Compress::Raw::Bzip2::new", XS_Compress__Raw__Bzip2_new)Perl_newXS_deffile( "Compress::Raw::Bzip2::new",XS_Compress__Raw__Bzip2_new
)
;
1697 newXS_deffile("Compress::Raw::Bunzip2::new", XS_Compress__Raw__Bunzip2_new)Perl_newXS_deffile( "Compress::Raw::Bunzip2::new",XS_Compress__Raw__Bunzip2_new
)
;
1698 newXS_deffile("Compress::Raw::Bzip2::DispStream", XS_Compress__Raw__Bzip2_DispStream)Perl_newXS_deffile( "Compress::Raw::Bzip2::DispStream",XS_Compress__Raw__Bzip2_DispStream
)
;
1699 newXS_deffile("Compress::Raw::Bzip2::bzdeflate", XS_Compress__Raw__Bzip2_bzdeflate)Perl_newXS_deffile( "Compress::Raw::Bzip2::bzdeflate",XS_Compress__Raw__Bzip2_bzdeflate
)
;
1700 newXS_deffile("Compress::Raw::Bzip2::DESTROY", XS_Compress__Raw__Bzip2_DESTROY)Perl_newXS_deffile( "Compress::Raw::Bzip2::DESTROY",XS_Compress__Raw__Bzip2_DESTROY
)
;
1701 newXS_deffile("Compress::Raw::Bzip2::bzclose", XS_Compress__Raw__Bzip2_bzclose)Perl_newXS_deffile( "Compress::Raw::Bzip2::bzclose",XS_Compress__Raw__Bzip2_bzclose
)
;
1702 newXS_deffile("Compress::Raw::Bzip2::bzflush", XS_Compress__Raw__Bzip2_bzflush)Perl_newXS_deffile( "Compress::Raw::Bzip2::bzflush",XS_Compress__Raw__Bzip2_bzflush
)
;
1703 newXS_deffile("Compress::Raw::Bzip2::total_in_lo32", XS_Compress__Raw__Bzip2_total_in_lo32)Perl_newXS_deffile( "Compress::Raw::Bzip2::total_in_lo32",XS_Compress__Raw__Bzip2_total_in_lo32
)
;
1704 newXS_deffile("Compress::Raw::Bzip2::total_out_lo32", XS_Compress__Raw__Bzip2_total_out_lo32)Perl_newXS_deffile( "Compress::Raw::Bzip2::total_out_lo32",XS_Compress__Raw__Bzip2_total_out_lo32
)
;
1705 newXS_deffile("Compress::Raw::Bzip2::compressedBytes", XS_Compress__Raw__Bzip2_compressedBytes)Perl_newXS_deffile( "Compress::Raw::Bzip2::compressedBytes",XS_Compress__Raw__Bzip2_compressedBytes
)
;
1706 newXS_deffile("Compress::Raw::Bzip2::uncompressedBytes", XS_Compress__Raw__Bzip2_uncompressedBytes)Perl_newXS_deffile( "Compress::Raw::Bzip2::uncompressedBytes"
,XS_Compress__Raw__Bzip2_uncompressedBytes)
;
1707 newXS_deffile("Compress::Raw::Bunzip2::DispStream", XS_Compress__Raw__Bunzip2_DispStream)Perl_newXS_deffile( "Compress::Raw::Bunzip2::DispStream",XS_Compress__Raw__Bunzip2_DispStream
)
;
1708 newXS_deffile("Compress::Raw::Bunzip2::bzinflate", XS_Compress__Raw__Bunzip2_bzinflate)Perl_newXS_deffile( "Compress::Raw::Bunzip2::bzinflate",XS_Compress__Raw__Bunzip2_bzinflate
)
;
1709 newXS_deffile("Compress::Raw::Bunzip2::inflateCount", XS_Compress__Raw__Bunzip2_inflateCount)Perl_newXS_deffile( "Compress::Raw::Bunzip2::inflateCount",XS_Compress__Raw__Bunzip2_inflateCount
)
;
1710 newXS_deffile("Compress::Raw::Bunzip2::DESTROY", XS_Compress__Raw__Bunzip2_DESTROY)Perl_newXS_deffile( "Compress::Raw::Bunzip2::DESTROY",XS_Compress__Raw__Bunzip2_DESTROY
)
;
1711 newXS_deffile("Compress::Raw::Bunzip2::status", XS_Compress__Raw__Bunzip2_status)Perl_newXS_deffile( "Compress::Raw::Bunzip2::status",XS_Compress__Raw__Bunzip2_status
)
;
1712 newXS_deffile("Compress::Raw::Bunzip2::total_in_lo32", XS_Compress__Raw__Bunzip2_total_in_lo32)Perl_newXS_deffile( "Compress::Raw::Bunzip2::total_in_lo32",XS_Compress__Raw__Bunzip2_total_in_lo32
)
;
1713 newXS_deffile("Compress::Raw::Bunzip2::total_out_lo32", XS_Compress__Raw__Bunzip2_total_out_lo32)Perl_newXS_deffile( "Compress::Raw::Bunzip2::total_out_lo32",
XS_Compress__Raw__Bunzip2_total_out_lo32)
;
1714 newXS_deffile("Compress::Raw::Bunzip2::compressedBytes", XS_Compress__Raw__Bunzip2_compressedBytes)Perl_newXS_deffile( "Compress::Raw::Bunzip2::compressedBytes"
,XS_Compress__Raw__Bunzip2_compressedBytes)
;
1715 newXS_deffile("Compress::Raw::Bunzip2::uncompressedBytes", XS_Compress__Raw__Bunzip2_uncompressedBytes)Perl_newXS_deffile( "Compress::Raw::Bunzip2::uncompressedBytes"
,XS_Compress__Raw__Bunzip2_uncompressedBytes)
;
1716
1717 /* Initialisation Section */
1718
1719#line 337 "Bzip2.xs"
1720 /* Check this version of bzip2 is == 1 */
1721 if (BZ2_bzlibVersion()[0] != '1')
1722 croakPerl_croak(COMPRESS_CLASS"Compress::Raw::Bzip2" " needs bzip2 version 1.x, you have %s\n", BZ2_bzlibVersion()) ;
1723
1724#line 1725 "Bzip2.c"
1725
1726 /* End of Initialisation Section */
1727
1728#if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5))
1729# if PERL_VERSION_GE(5, 9, 0)((5*1000000 + 32*1000 + 1) >= (5*1000000 + 9*1000 + 0))
1730 if (PL_unitcheckav)
1731 call_list(PL_scopestack_ix, PL_unitcheckav)Perl_call_list( PL_scopestack_ix,PL_unitcheckav);
1732# endif
1733 XSRETURN_YESdo { (PL_stack_base[ax + (0)] = &(PL_sv_immortals[0]) ); do
{ const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0); } while (0)
;
1734#else
1735 Perl_xs_boot_epilog(aTHX_ ax);
1736#endif
1737}
1738