← Index
NYTProf Performance Profile   « line view »
For t/bug-md-11.t
  Run on Fri Mar 8 13:27:24 2024
Reported on Fri Mar 8 13:30:23 2024

Filename/home/micha/.plenv/versions/5.38.2/lib/perl5/site_perl/5.38.2/Archive/Zip/NewFileMember.pm
StatementsExecuted 9 statements in 287µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11111µs11µsArchive::Zip::NewFileMember::::BEGIN@6Archive::Zip::NewFileMember::BEGIN@6
11110µs12µsArchive::Zip::NewFileMember::::BEGIN@3Archive::Zip::NewFileMember::BEGIN@3
1114µs122µsArchive::Zip::NewFileMember::::BEGIN@11Archive::Zip::NewFileMember::BEGIN@11
1114µs21µsArchive::Zip::NewFileMember::::BEGIN@4Archive::Zip::NewFileMember::BEGIN@4
0000s0sArchive::Zip::NewFileMember::::_newFromFileNamedArchive::Zip::NewFileMember::_newFromFileNamed
0000s0sArchive::Zip::NewFileMember::::_readRawChunkArchive::Zip::NewFileMember::_readRawChunk
0000s0sArchive::Zip::NewFileMember::::extractToFileNamedArchive::Zip::NewFileMember::extractToFileNamed
0000s0sArchive::Zip::NewFileMember::::rewindDataArchive::Zip::NewFileMember::rewindData
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Archive::Zip::NewFileMember;
2
3222µs213µs
# spent 12µs (10+2) within Archive::Zip::NewFileMember::BEGIN@3 which was called: # once (10µs+2µs) by Spreadsheet::ParseXLSX::BEGIN@11 at line 3
use strict;
# spent 12µs making 1 call to Archive::Zip::NewFileMember::BEGIN@3 # spent 2µs making 1 call to strict::import
4224µs239µs
# spent 21µs (4+18) within Archive::Zip::NewFileMember::BEGIN@4 which was called: # once (4µs+18µs) by Spreadsheet::ParseXLSX::BEGIN@11 at line 4
use vars qw( $VERSION @ISA );
# spent 21µs making 1 call to Archive::Zip::NewFileMember::BEGIN@4 # spent 18µs making 1 call to vars::import
5
6
# spent 11µs within Archive::Zip::NewFileMember::BEGIN@6 which was called: # once (11µs+0s) by Spreadsheet::ParseXLSX::BEGIN@11 at line 9
BEGIN {
71200ns $VERSION = '1.68';
8111µs @ISA = qw ( Archive::Zip::FileMember );
9116µs111µs}
# spent 11µs making 1 call to Archive::Zip::NewFileMember::BEGIN@6
10
1112µs1118µs
# spent 122µs (4+118) within Archive::Zip::NewFileMember::BEGIN@11 which was called: # once (4µs+118µs) by Spreadsheet::ParseXLSX::BEGIN@11 at line 15
use Archive::Zip qw(
# spent 118µs making 1 call to Exporter::import
12 :CONSTANTS
13 :ERROR_CODES
14 :UTILITY_METHODS
151210µs1122µs);
# spent 122µs making 1 call to Archive::Zip::NewFileMember::BEGIN@11
16
17# Given a file name, set up for eventual writing.
18sub _newFromFileNamed {
19 my $class = shift;
20 my $fileName = shift; # local FS format
21 my $newName = shift;
22 $newName = _asZipDirName($fileName) unless defined($newName);
23 return undef unless (stat($fileName) && -r _ && !-d _ );
24 my $self = $class->new(@_);
25 $self->{'fileName'} = $newName;
26 $self->{'externalFileName'} = $fileName;
27 $self->{'compressionMethod'} = COMPRESSION_STORED;
28 my @stat = stat(_);
29 $self->{'compressedSize'} = $self->{'uncompressedSize'} = $stat[7];
30 $self->desiredCompressionMethod(
31 ($self->compressedSize() > 0)
32 ? COMPRESSION_DEFLATED
33 : COMPRESSION_STORED
34 );
35 $self->unixFileAttributes($stat[2]);
36 $self->setLastModFileDateTimeFromUnix($stat[9]);
37 $self->isTextFile(-T _ );
38 return $self;
39}
40
41sub rewindData {
42 my $self = shift;
43
44 my $status = $self->SUPER::rewindData(@_);
45 return $status unless $status == AZ_OK;
46
47 return AZ_IO_ERROR unless $self->fh();
48 $self->fh()->clearerr();
49 $self->fh()->seek(0, IO::Seekable::SEEK_SET)
50 or return _ioError("rewinding", $self->externalFileName());
51 return AZ_OK;
52}
53
54# Return bytes read. Note that first parameter is a ref to a buffer.
55# my $data;
56# my ( $bytesRead, $status) = $self->readRawChunk( \$data, $chunkSize );
57sub _readRawChunk {
58 my ($self, $dataRef, $chunkSize) = @_;
59 return (0, AZ_OK) unless $chunkSize;
60 my $bytesRead = $self->fh()->read($$dataRef, $chunkSize)
61 or return (0, _ioError("reading data"));
62 return ($bytesRead, AZ_OK);
63}
64
65# If I already exist, extraction is a no-op.
66sub extractToFileNamed {
67 my $self = shift;
68 my $name = shift; # local FS name
69 if (File::Spec->rel2abs($name) eq
70 File::Spec->rel2abs($self->externalFileName()) and -r $name) {
71 return AZ_OK;
72 } else {
73 return $self->SUPER::extractToFileNamed($name, @_);
74 }
75}
76
7712µs1;