← Index
NYTProf Performance Profile   « line view »
For ../prof.pl
  Run on Wed Dec 14 15:57:08 2022
Reported on Wed Dec 14 16:00:31 2022

Filename/Users/ether/perl5/perlbrew/perls/36.0/lib/5.36.0/IO/Uncompress/Adapter/Inflate.pm
StatementsExecuted 14 statements in 1.04ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11146µs50µsIO::Uncompress::Adapter::Inflate::::BEGIN@3IO::Uncompress::Adapter::Inflate::BEGIN@3
11117µs118µsIO::Uncompress::Adapter::Inflate::::BEGIN@7IO::Uncompress::Adapter::Inflate::BEGIN@7
11111µs53µsIO::Uncompress::Adapter::Inflate::::BEGIN@8IO::Uncompress::Adapter::Inflate::BEGIN@8
1117µs33µsIO::Uncompress::Adapter::Inflate::::BEGIN@4IO::Uncompress::Adapter::Inflate::BEGIN@4
1117µs9µsIO::Uncompress::Adapter::Inflate::::BEGIN@5IO::Uncompress::Adapter::Inflate::BEGIN@5
0000s0sIO::Uncompress::Adapter::Inflate::::adler32IO::Uncompress::Adapter::Inflate::adler32
0000s0sIO::Uncompress::Adapter::Inflate::::compressedBytesIO::Uncompress::Adapter::Inflate::compressedBytes
0000s0sIO::Uncompress::Adapter::Inflate::::crc32IO::Uncompress::Adapter::Inflate::crc32
0000s0sIO::Uncompress::Adapter::Inflate::::createDeflateStreamIO::Uncompress::Adapter::Inflate::createDeflateStream
0000s0sIO::Uncompress::Adapter::Inflate::::getEndOffsetIO::Uncompress::Adapter::Inflate::getEndOffset
0000s0sIO::Uncompress::Adapter::Inflate::::getLastBlockOffsetIO::Uncompress::Adapter::Inflate::getLastBlockOffset
0000s0sIO::Uncompress::Adapter::Inflate::::mkUncompObjectIO::Uncompress::Adapter::Inflate::mkUncompObject
0000s0sIO::Uncompress::Adapter::Inflate::::resetIO::Uncompress::Adapter::Inflate::reset
0000s0sIO::Uncompress::Adapter::Inflate::::resetLastBlockByteIO::Uncompress::Adapter::Inflate::resetLastBlockByte
0000s0sIO::Uncompress::Adapter::Inflate::::syncIO::Uncompress::Adapter::Inflate::sync
0000s0sIO::Uncompress::Adapter::Inflate::::uncomprIO::Uncompress::Adapter::Inflate::uncompr
0000s0sIO::Uncompress::Adapter::Inflate::::uncompressedBytesIO::Uncompress::Adapter::Inflate::uncompressedBytes
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package IO::Uncompress::Adapter::Inflate;
2
3258µs254µs
# spent 50µs (46+4) within IO::Uncompress::Adapter::Inflate::BEGIN@3 which was called: # once (46µs+4µs) by IO::Uncompress::RawInflate::BEGIN@12 at line 3
use strict;
# spent 50µs making 1 call to IO::Uncompress::Adapter::Inflate::BEGIN@3 # spent 4µs making 1 call to strict::import
4221µs259µs
# spent 33µs (7+26) within IO::Uncompress::Adapter::Inflate::BEGIN@4 which was called: # once (7µs+26µs) by IO::Uncompress::RawInflate::BEGIN@12 at line 4
use warnings;
# spent 33µs making 1 call to IO::Uncompress::Adapter::Inflate::BEGIN@4 # spent 26µs making 1 call to warnings::import
5273µs211µs
# spent 9µs (7+2) within IO::Uncompress::Adapter::Inflate::BEGIN@5 which was called: # once (7µs+2µs) by IO::Uncompress::RawInflate::BEGIN@12 at line 5
use bytes;
# spent 9µs making 1 call to IO::Uncompress::Adapter::Inflate::BEGIN@5 # spent 2µs making 1 call to bytes::import
6
7354µs3219µs
# spent 118µs (17+101) within IO::Uncompress::Adapter::Inflate::BEGIN@7 which was called: # once (17µs+101µs) by IO::Uncompress::RawInflate::BEGIN@12 at line 7
use IO::Compress::Base::Common 2.106 qw(:Status);
# spent 118µs making 1 call to IO::Uncompress::Adapter::Inflate::BEGIN@7 # spent 91µs making 1 call to Exporter::import # spent 10µs making 1 call to UNIVERSAL::VERSION
83826µs395µs
# spent 53µs (11+42) within IO::Uncompress::Adapter::Inflate::BEGIN@8 which was called: # once (11µs+42µs) by IO::Uncompress::RawInflate::BEGIN@12 at line 8
use Compress::Raw::Zlib 2.103 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
# spent 53µs making 1 call to IO::Uncompress::Adapter::Inflate::BEGIN@8 # spent 35µs making 1 call to Exporter::import # spent 7µs making 1 call to UNIVERSAL::VERSION
9
10our ($VERSION);
1110s$VERSION = '2.106';
12
- -
15sub mkUncompObject
16{
17 my $crc32 = shift || 1;
18 my $adler32 = shift || 1;
19 my $scan = shift || 0;
20
21 my $inflate ;
22 my $status ;
23
24 if ($scan)
25 {
26 ($inflate, $status) = Compress::Raw::Zlib::InflateScan->new(
27 #LimitOutput => 1,
28 CRC32 => $crc32,
29 ADLER32 => $adler32,
30 WindowBits => - MAX_WBITS );
31 }
32 else
33 {
34 ($inflate, $status) = Compress::Raw::Zlib::Inflate->new(
35 AppendOutput => 1,
36 LimitOutput => 1,
37 CRC32 => $crc32,
38 ADLER32 => $adler32,
39 WindowBits => - MAX_WBITS );
40 }
41
42 return (undef, "Could not create Inflation object: $status", $status)
43 if $status != Z_OK ;
44
45 return bless {'Inf' => $inflate,
46 'CompSize' => 0,
47 'UnCompSize' => 0,
48 'Error' => '',
49 'ConsumesInput' => 1,
50 } ;
51
52}
53
54sub uncompr
55{
56 my $self = shift ;
57 my $from = shift ;
58 my $to = shift ;
59 my $eof = shift ;
60
61 my $inf = $self->{Inf};
62
63 my $status = $inf->inflate($from, $to, $eof);
64 $self->{ErrorNo} = $status;
65 if ($status != Z_OK && $status != Z_STREAM_END && $status != Z_BUF_ERROR)
66 {
67 $self->{Error} = "Inflation Error: $status";
68 return STATUS_ERROR;
69 }
70
71 return STATUS_OK if $status == Z_BUF_ERROR ; # ???
72 return STATUS_OK if $status == Z_OK ;
73 return STATUS_ENDSTREAM if $status == Z_STREAM_END ;
74 return STATUS_ERROR ;
75}
76
77sub reset
78{
79 my $self = shift ;
80 $self->{Inf}->inflateReset();
81
82 return STATUS_OK ;
83}
84
85#sub count
86#{
87# my $self = shift ;
88# $self->{Inf}->inflateCount();
89#}
90
91sub crc32
92{
93 my $self = shift ;
94 $self->{Inf}->crc32();
95}
96
97sub compressedBytes
98{
99 my $self = shift ;
100 $self->{Inf}->compressedBytes();
101}
102
103sub uncompressedBytes
104{
105 my $self = shift ;
106 $self->{Inf}->uncompressedBytes();
107}
108
109sub adler32
110{
111 my $self = shift ;
112 $self->{Inf}->adler32();
113}
114
115sub sync
116{
117 my $self = shift ;
118 ( $self->{Inf}->inflateSync(@_) == Z_OK)
119 ? STATUS_OK
120 : STATUS_ERROR ;
121}
122
123
124sub getLastBlockOffset
125{
126 my $self = shift ;
127 $self->{Inf}->getLastBlockOffset();
128}
129
130sub getEndOffset
131{
132 my $self = shift ;
133 $self->{Inf}->getEndOffset();
134}
135
136sub resetLastBlockByte
137{
138 my $self = shift ;
139 $self->{Inf}->resetLastBlockByte(@_);
140}
141
142sub createDeflateStream
143{
144 my $self = shift ;
145 my $deflate = $self->{Inf}->createDeflateStream(@_);
146 return bless {'Def' => $deflate,
147 'CompSize' => 0,
148 'UnCompSize' => 0,
149 'Error' => '',
150 }, 'IO::Compress::Adapter::Deflate';
151}
152
15315µs1;
154
155
156__END__