← Index
NYTProf Performance Profile   « block view • line view • sub view »
For /usr/share/koha/opac/cgi-bin/opac/opac-search.pl
  Run on Tue Oct 15 11:58:52 2013
Reported on Tue Oct 15 12:01:53 2013

Filename/usr/lib/perl5/XML/LibXML/Error.pm
StatementsExecuted 104 statements in 3.73ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11158µs124µsXML::LibXML::Error::::BEGIN@53XML::LibXML::Error::BEGIN@53
11135µs142µsXML::LibXML::Error::::BEGIN@15XML::LibXML::Error::BEGIN@15
11133µs138µsXML::LibXML::Error::::BEGIN@225XML::LibXML::Error::BEGIN@225
11130µs39µsXML::LibXML::Error::::BEGIN@11XML::LibXML::Error::BEGIN@11
11125µs90µsXML::LibXML::Error::::BEGIN@35XML::LibXML::Error::BEGIN@35
11122µs94µsXML::LibXML::Error::::BEGIN@33XML::LibXML::Error::BEGIN@33
11122µs82µsXML::LibXML::Error::::BEGIN@37XML::LibXML::Error::BEGIN@37
11121µs81µsXML::LibXML::Error::::BEGIN@43XML::LibXML::Error::BEGIN@43
11119µs118µsXML::LibXML::Error::::BEGIN@13XML::LibXML::Error::BEGIN@13
11118µs103µsXML::LibXML::Error::::BEGIN@27XML::LibXML::Error::BEGIN@27
11118µs174µsXML::LibXML::Error::::BEGIN@12XML::LibXML::Error::BEGIN@12
11117µs82µsXML::LibXML::Error::::BEGIN@30XML::LibXML::Error::BEGIN@30
11117µs82µsXML::LibXML::Error::::BEGIN@42XML::LibXML::Error::BEGIN@42
11117µs73µsXML::LibXML::Error::::BEGIN@38XML::LibXML::Error::BEGIN@38
11116µs82µsXML::LibXML::Error::::BEGIN@28XML::LibXML::Error::BEGIN@28
11116µs80µsXML::LibXML::Error::::BEGIN@44XML::LibXML::Error::BEGIN@44
11116µs86µsXML::LibXML::Error::::BEGIN@52XML::LibXML::Error::BEGIN@52
11116µs95µsXML::LibXML::Error::::BEGIN@45XML::LibXML::Error::BEGIN@45
11116µs81µsXML::LibXML::Error::::BEGIN@32XML::LibXML::Error::BEGIN@32
11116µs81µsXML::LibXML::Error::::BEGIN@34XML::LibXML::Error::BEGIN@34
11115µs79µsXML::LibXML::Error::::BEGIN@39XML::LibXML::Error::BEGIN@39
11115µs77µsXML::LibXML::Error::::BEGIN@29XML::LibXML::Error::BEGIN@29
11115µs75µsXML::LibXML::Error::::BEGIN@50XML::LibXML::Error::BEGIN@50
11115µs80µsXML::LibXML::Error::::BEGIN@36XML::LibXML::Error::BEGIN@36
11115µs75µsXML::LibXML::Error::::BEGIN@51XML::LibXML::Error::BEGIN@51
11115µs80µsXML::LibXML::Error::::BEGIN@47XML::LibXML::Error::BEGIN@47
11114µs71µsXML::LibXML::Error::::BEGIN@46XML::LibXML::Error::BEGIN@46
11114µs73µsXML::LibXML::Error::::BEGIN@41XML::LibXML::Error::BEGIN@41
11114µs75µsXML::LibXML::Error::::BEGIN@54XML::LibXML::Error::BEGIN@54
11114µs70µsXML::LibXML::Error::::BEGIN@48XML::LibXML::Error::BEGIN@48
11114µs76µsXML::LibXML::Error::::BEGIN@40XML::LibXML::Error::BEGIN@40
11114µs67µsXML::LibXML::Error::::BEGIN@55XML::LibXML::Error::BEGIN@55
11112µs68µsXML::LibXML::Error::::BEGIN@49XML::LibXML::Error::BEGIN@49
0000s0sXML::LibXML::Error::::AUTOLOADXML::LibXML::Error::AUTOLOAD
0000s0sXML::LibXML::Error::::DESTROYXML::LibXML::Error::DESTROY
0000s0sXML::LibXML::Error::::__ANON__[:18]XML::LibXML::Error::__ANON__[:18]
0000s0sXML::LibXML::Error::::__ANON__[:21]XML::LibXML::Error::__ANON__[:21]
0000s0sXML::LibXML::Error::::_callback_errorXML::LibXML::Error::_callback_error
0000s0sXML::LibXML::Error::::_instant_error_callbackXML::LibXML::Error::_instant_error_callback
0000s0sXML::LibXML::Error::::_report_errorXML::LibXML::Error::_report_error
0000s0sXML::LibXML::Error::::_report_warningXML::LibXML::Error::_report_warning
0000s0sXML::LibXML::Error::::as_stringXML::LibXML::Error::as_string
0000s0sXML::LibXML::Error::::domainXML::LibXML::Error::domain
0000s0sXML::LibXML::Error::::dumpXML::LibXML::Error::dump
0000s0sXML::LibXML::Error::::int1XML::LibXML::Error::int1
0000s0sXML::LibXML::Error::::int2XML::LibXML::Error::int2
0000s0sXML::LibXML::Error::::newXML::LibXML::Error::new
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# $Id: Error.pm,v 1.1.2.1 2004/04/20 20:09:48 pajas Exp $
2#
3# This is free software, you may use it and distribute it under the same terms as
4# Perl itself.
5#
6# Copyright 2001-2003 AxKit.com Ltd., 2002-2006 Christian Glahn, 2006-2009 Petr Pajas
7#
8#
9package XML::LibXML::Error;
10
11359µs247µs
# spent 39µs (30+8) within XML::LibXML::Error::BEGIN@11 which was called: # once (30µs+8µs) by XML::LibXML::BEGIN@23 at line 11
use strict;
# spent 39µs making 1 call to XML::LibXML::Error::BEGIN@11 # spent 8µs making 1 call to strict::import
12361µs2331µs
# spent 174µs (18+156) within XML::LibXML::Error::BEGIN@12 which was called: # once (18µs+156µs) by XML::LibXML::BEGIN@23 at line 12
use vars qw($AUTOLOAD @error_domains $VERSION $WARNINGS);
# spent 174µs making 1 call to XML::LibXML::Error::BEGIN@12 # spent 156µs making 1 call to vars::import
133212µs2216µs
# spent 118µs (19+99) within XML::LibXML::Error::BEGIN@13 which was called: # once (19µs+99µs) by XML::LibXML::BEGIN@23 at line 13
use Carp;
# spent 118µs making 1 call to XML::LibXML::Error::BEGIN@13 # spent 98µs making 1 call to Exporter::import
14use overload
15
# spent 142µs (35+107) within XML::LibXML::Error::BEGIN@15 which was called: # once (35µs+107µs) by XML::LibXML::BEGIN@23 at line 22
'""' => \&as_string,
16 'eq' => sub {
17 ("$_[0]" eq "$_[1]")
18 },
19 'cmp' => sub {
20 ("$_[0]" cmp "$_[1]")
21 },
223116µs2249µs fallback => 1;
# spent 142µs making 1 call to XML::LibXML::Error::BEGIN@15 # spent 107µs making 1 call to overload::import
23
2411µs$WARNINGS = 0; # 0: supress, 1: report via warn, 2: report via die
2512µs$VERSION = "1.70"; # VERSION TEMPLATE: DO NOT CHANGE
26
27360µs2188µs
# spent 103µs (18+85) within XML::LibXML::Error::BEGIN@27 which was called: # once (18µs+85µs) by XML::LibXML::BEGIN@23 at line 27
use constant XML_ERR_NONE => 0;
# spent 103µs making 1 call to XML::LibXML::Error::BEGIN@27 # spent 85µs making 1 call to constant::import
28356µs2147µs
# spent 82µs (16+65) within XML::LibXML::Error::BEGIN@28 which was called: # once (16µs+65µs) by XML::LibXML::BEGIN@23 at line 28
use constant XML_ERR_WARNING => 1; # A simple warning
# spent 82µs making 1 call to XML::LibXML::Error::BEGIN@28 # spent 65µs making 1 call to constant::import
29357µs2139µs
# spent 77µs (15+62) within XML::LibXML::Error::BEGIN@29 which was called: # once (15µs+62µs) by XML::LibXML::BEGIN@23 at line 29
use constant XML_ERR_ERROR => 2; # A recoverable error
# spent 77µs making 1 call to XML::LibXML::Error::BEGIN@29 # spent 62µs making 1 call to constant::import
30369µs2147µs
# spent 82µs (17+65) within XML::LibXML::Error::BEGIN@30 which was called: # once (17µs+65µs) by XML::LibXML::BEGIN@23 at line 30
use constant XML_ERR_FATAL => 3; # A fatal error
# spent 82µs making 1 call to XML::LibXML::Error::BEGIN@30 # spent 65µs making 1 call to constant::import
31
32364µs2147µs
# spent 81µs (16+65) within XML::LibXML::Error::BEGIN@32 which was called: # once (16µs+65µs) by XML::LibXML::BEGIN@23 at line 32
use constant XML_ERR_FROM_NONE => 0;
# spent 81µs making 1 call to XML::LibXML::Error::BEGIN@32 # spent 65µs making 1 call to constant::import
33358µs2165µs
# spent 94µs (22+71) within XML::LibXML::Error::BEGIN@33 which was called: # once (22µs+71µs) by XML::LibXML::BEGIN@23 at line 33
use constant XML_ERR_FROM_PARSER => 1; # The XML parser
# spent 94µs making 1 call to XML::LibXML::Error::BEGIN@33 # spent 71µs making 1 call to constant::import
34358µs2146µs
# spent 81µs (16+65) within XML::LibXML::Error::BEGIN@34 which was called: # once (16µs+65µs) by XML::LibXML::BEGIN@23 at line 34
use constant XML_ERR_FROM_TREE => 2; # The tree module
# spent 81µs making 1 call to XML::LibXML::Error::BEGIN@34 # spent 65µs making 1 call to constant::import
35358µs2154µs
# spent 90µs (25+64) within XML::LibXML::Error::BEGIN@35 which was called: # once (25µs+64µs) by XML::LibXML::BEGIN@23 at line 35
use constant XML_ERR_FROM_NAMESPACE => 3; # The XML Namespace module
# spent 90µs making 1 call to XML::LibXML::Error::BEGIN@35 # spent 64µs making 1 call to constant::import
36354µs2144µs
# spent 80µs (15+64) within XML::LibXML::Error::BEGIN@36 which was called: # once (15µs+64µs) by XML::LibXML::BEGIN@23 at line 36
use constant XML_ERR_FROM_DTD => 4; # The XML DTD validation
# spent 80µs making 1 call to XML::LibXML::Error::BEGIN@36 # spent 65µs making 1 call to constant::import
37354µs2142µs
# spent 82µs (22+60) within XML::LibXML::Error::BEGIN@37 which was called: # once (22µs+60µs) by XML::LibXML::BEGIN@23 at line 37
use constant XML_ERR_FROM_HTML => 5; # The HTML parser
# spent 82µs making 1 call to XML::LibXML::Error::BEGIN@37 # spent 60µs making 1 call to constant::import
38357µs2130µs
# spent 73µs (17+57) within XML::LibXML::Error::BEGIN@38 which was called: # once (17µs+57µs) by XML::LibXML::BEGIN@23 at line 38
use constant XML_ERR_FROM_MEMORY => 6; # The memory allocator
# spent 73µs making 1 call to XML::LibXML::Error::BEGIN@38 # spent 57µs making 1 call to constant::import
39357µs2142µs
# spent 79µs (15+63) within XML::LibXML::Error::BEGIN@39 which was called: # once (15µs+63µs) by XML::LibXML::BEGIN@23 at line 39
use constant XML_ERR_FROM_OUTPUT => 7; # The serialization code
# spent 79µs making 1 call to XML::LibXML::Error::BEGIN@39 # spent 63µs making 1 call to constant::import
40362µs2138µs
# spent 76µs (14+62) within XML::LibXML::Error::BEGIN@40 which was called: # once (14µs+62µs) by XML::LibXML::BEGIN@23 at line 40
use constant XML_ERR_FROM_IO => 8; # The Input/Output stack
# spent 76µs making 1 call to XML::LibXML::Error::BEGIN@40 # spent 62µs making 1 call to constant::import
41347µs2132µs
# spent 73µs (14+59) within XML::LibXML::Error::BEGIN@41 which was called: # once (14µs+59µs) by XML::LibXML::BEGIN@23 at line 41
use constant XML_ERR_FROM_FTP => 9; # The FTP module
# spent 73µs making 1 call to XML::LibXML::Error::BEGIN@41 # spent 59µs making 1 call to constant::import
42349µs2148µs
# spent 82µs (17+65) within XML::LibXML::Error::BEGIN@42 which was called: # once (17µs+65µs) by XML::LibXML::BEGIN@23 at line 42
use constant XML_ERR_FROM_HTTP => 10; # The FTP module
# spent 82µs making 1 call to XML::LibXML::Error::BEGIN@42 # spent 65µs making 1 call to constant::import
43353µs2142µs
# spent 81µs (21+60) within XML::LibXML::Error::BEGIN@43 which was called: # once (21µs+60µs) by XML::LibXML::BEGIN@23 at line 43
use constant XML_ERR_FROM_XINCLUDE => 11; # The XInclude processing
# spent 81µs making 1 call to XML::LibXML::Error::BEGIN@43 # spent 60µs making 1 call to constant::import
44358µs2143µs
# spent 80µs (16+63) within XML::LibXML::Error::BEGIN@44 which was called: # once (16µs+63µs) by XML::LibXML::BEGIN@23 at line 44
use constant XML_ERR_FROM_XPATH => 12; # The XPath module
# spent 80µs making 1 call to XML::LibXML::Error::BEGIN@44 # spent 63µs making 1 call to constant::import
45351µs2174µs
# spent 95µs (16+79) within XML::LibXML::Error::BEGIN@45 which was called: # once (16µs+79µs) by XML::LibXML::BEGIN@23 at line 45
use constant XML_ERR_FROM_XPOINTER => 13; # The XPointer module
# spent 95µs making 1 call to XML::LibXML::Error::BEGIN@45 # spent 79µs making 1 call to constant::import
463104µs2127µs
# spent 71µs (14+56) within XML::LibXML::Error::BEGIN@46 which was called: # once (14µs+56µs) by XML::LibXML::BEGIN@23 at line 46
use constant XML_ERR_FROM_REGEXP => 14; # The regular expressions module
# spent 71µs making 1 call to XML::LibXML::Error::BEGIN@46 # spent 56µs making 1 call to constant::import
47352µs2145µs
# spent 80µs (15+65) within XML::LibXML::Error::BEGIN@47 which was called: # once (15µs+65µs) by XML::LibXML::BEGIN@23 at line 47
use constant XML_ERR_FROM_DATATYPE => 15; # The W3C XML Schemas Datatype module
# spent 80µs making 1 call to XML::LibXML::Error::BEGIN@47 # spent 65µs making 1 call to constant::import
48350µs2127µs
# spent 70µs (14+56) within XML::LibXML::Error::BEGIN@48 which was called: # once (14µs+56µs) by XML::LibXML::BEGIN@23 at line 48
use constant XML_ERR_FROM_SCHEMASP => 16; # The W3C XML Schemas parser module
# spent 70µs making 1 call to XML::LibXML::Error::BEGIN@48 # spent 56µs making 1 call to constant::import
49350µs2124µs
# spent 68µs (12+56) within XML::LibXML::Error::BEGIN@49 which was called: # once (12µs+56µs) by XML::LibXML::BEGIN@23 at line 49
use constant XML_ERR_FROM_SCHEMASV => 17; # The W3C XML Schemas validation module
# spent 68µs making 1 call to XML::LibXML::Error::BEGIN@49 # spent 56µs making 1 call to constant::import
50385µs2134µs
# spent 75µs (15+59) within XML::LibXML::Error::BEGIN@50 which was called: # once (15µs+59µs) by XML::LibXML::BEGIN@23 at line 50
use constant XML_ERR_FROM_RELAXNGP => 18; # The Relax-NG parser module
# spent 75µs making 1 call to XML::LibXML::Error::BEGIN@50 # spent 59µs making 1 call to constant::import
51371µs2136µs
# spent 75µs (15+60) within XML::LibXML::Error::BEGIN@51 which was called: # once (15µs+60µs) by XML::LibXML::BEGIN@23 at line 51
use constant XML_ERR_FROM_RELAXNGV => 19; # The Relax-NG validator module
# spent 75µs making 1 call to XML::LibXML::Error::BEGIN@51 # spent 60µs making 1 call to constant::import
52357µs2155µs
# spent 86µs (16+69) within XML::LibXML::Error::BEGIN@52 which was called: # once (16µs+69µs) by XML::LibXML::BEGIN@23 at line 52
use constant XML_ERR_FROM_CATALOG => 20; # The Catalog module
# spent 86µs making 1 call to XML::LibXML::Error::BEGIN@52 # spent 69µs making 1 call to constant::import
53360µs2189µs
# spent 124µs (58+65) within XML::LibXML::Error::BEGIN@53 which was called: # once (58µs+65µs) by XML::LibXML::BEGIN@23 at line 53
use constant XML_ERR_FROM_C14N => 21; # The Canonicalization module
# spent 124µs making 1 call to XML::LibXML::Error::BEGIN@53 # spent 66µs making 1 call to constant::import
54352µs2135µs
# spent 75µs (14+60) within XML::LibXML::Error::BEGIN@54 which was called: # once (14µs+60µs) by XML::LibXML::BEGIN@23 at line 54
use constant XML_ERR_FROM_XSLT => 22; # The XSLT engine from libxslt
# spent 75µs making 1 call to XML::LibXML::Error::BEGIN@54 # spent 60µs making 1 call to constant::import
5531.53ms2121µs
# spent 67µs (14+54) within XML::LibXML::Error::BEGIN@55 which was called: # once (14µs+54µs) by XML::LibXML::BEGIN@23 at line 55
use constant XML_ERR_FROM_VALID => 23; # The validaton module
# spent 67µs making 1 call to XML::LibXML::Error::BEGIN@55 # spent 54µs making 1 call to constant::import
56
5718µs@error_domains = ("", "parser", "tree", "namespace", "validity",
58 "HTML parser", "memory", "output", "I/O", "ftp",
59 "http", "XInclude", "XPath", "xpointer", "regexp",
60 "Schemas datatype", "Schemas parser", "Schemas validity",
61 "Relax-NG parser", "Relax-NG validity",
62 "Catalog", "C14N", "XSLT", "validity");
63
64{
65
6612µs sub new {
67 my ($class,$xE) = @_;
68 my $terr;
69 if (ref($xE)) {
70 my ($context,$column) = $xE->context_and_column();
71 $terr =bless {
72 domain => $xE->domain(),
73 level => $xE->level(),
74 code => $xE->code(),
75 message => $xE->message(),
76 file => $xE->file(),
77 line => $xE->line(),
78 str1 => $xE->str1(),
79 str2 => $xE->str2(),
80 str3 => $xE->str3(),
81 num1 => $xE->num1(),
82 num2 => $xE->num2(),
83 (defined($context) ?
84 (
85 context => $context,
86 column => $column,
87 ) : ()),
88 }, $class;
89 } else {
90 # !!!! problem : got a flat error
91 # warn("PROBLEM: GOT A FLAT ERROR $xE\n");
92 $terr =bless {
93 domain => 0,
94 level => 2,
95 code => -1,
96 message => $xE,
97 file => undef,
98 line => undef,
99 str1 => undef,
100 str2 => undef,
101 str3 => undef,
102 num1 => undef,
103 num2 => undef,
104 }, $class;
105 }
106 return $terr;
107 }
108
109 sub _callback_error {
110 #print "CALLBACK\n";
111 my ($xE,$prev) = @_;
112 my $terr;
113 $terr=XML::LibXML::Error->new($xE);
114 if ($terr->{level} == XML_ERR_WARNING and $WARNINGS!=2) {
115 warn $terr if $WARNINGS;
116 return $prev;
117 }
118 #unless ( defined $terr->{file} and length $terr->{file} ) {
119 # this would make it easier to recognize parsed strings
120 # but it breaks old implementations
121 # [CG] $terr->{file} = 'string()';
122 #}
123 #warn "Saving the error ",$terr->dump;
124 $terr->{_prev} = ref($prev) ? $prev :
125 defined($prev) && length($prev) ? XML::LibXML::Error->new($prev) : undef;
126 return $terr;
127 }
128 sub _instant_error_callback {
129 my $xE = shift;
130 my $terr= XML::LibXML::Error->new($xE);
131 print "Reporting an instanteous error ",$terr->dump;
132 die $terr;
133 }
134 sub _report_warning {
135 my ($saved_error) = @_;
136 #print "CALLBACK WARN\n";
137 if ( defined $saved_error ) {
138 #print "reporting a warning ",$saved_error->dump;
139 warn $saved_error;
140 }
141 }
142 sub _report_error {
143 my ($saved_error) = @_;
144 #print "CALLBACK ERROR: $saved_error\n";
145 if ( defined $saved_error ) {
146 die $saved_error;
147 }
148 }
149}
150
151
152sub AUTOLOAD {
153 my $self=shift;
154 return undef unless ref($self);
155 my $sub = $AUTOLOAD;
156 $sub =~ s/.*:://;
157 if ($sub=~/^(?:code|_prev|level|file|line|domain|nodename|message|column|context|str[123]|num[12])$/) {
158 return $self->{$sub};
159 } else {
160 croak("Unknown error field $sub");
161 }
162}
163
164# backward compatibility
165sub int1 { $_[0]->num1 }
166sub int2 { $_[0]->num2 }
167
168sub DESTROY {}
169
170sub domain {
171 my ($self)=@_;
172 return undef unless ref($self);
173 return $error_domains[$self->{domain}];
174}
175
176sub as_string {
177 my ($self)=@_;
178 my $msg = "";
179 my $level;
180
181 if (defined($self->{_prev})) {
182 $msg = $self->{_prev}->as_string;
183 }
184
185 if ($self->{level} == XML_ERR_NONE) {
186 $level = "";
187 } elsif ($self->{level} == XML_ERR_WARNING) {
188 $level = "warning";
189 } elsif ($self->{level} == XML_ERR_ERROR ||
190 $self->{level} == XML_ERR_FATAL) {
191 $level = "error";
192 }
193 my $where="";
194 if (defined($self->{file})) {
195 $where="$self->{file}:$self->{line}";
196 } elsif (($self->{domain} == XML_ERR_FROM_PARSER)
197 and
198 $self->{line}) {
199 $where="Entity: line $self->{line}";
200 }
201 if ($self->{nodename}) {
202 $where.=": element ".$self->{nodename};
203 }
204 $msg.=$where.": " if $where ne "";
205 $msg.=$error_domains[$self->{domain}]." ".$level." :";
206 my $str=$self->{message}||"";
207 chomp($str);
208 $msg.=" ".$str."\n";
209 if (($self->{domain} == XML_ERR_FROM_XPATH) and
210 defined($self->{str1})) {
211 $msg.=$self->{str1}."\n";
212 $msg.=(" " x $self->{num1})."^\n";
213 } elsif (defined $self->{context}) {
214 my $context = $self->{context};
215 $msg.=$context."\n";
216 $context = substr($context,0,$self->{column});
217 $context=~s/[^\t]/ /g;
218 $msg.=$context."^\n";
219 }
220 return $msg;
221}
222
223sub dump {
224 my ($self)=@_;
2253127µs2243µs
# spent 138µs (33+105) within XML::LibXML::Error::BEGIN@225 which was called: # once (33µs+105µs) by XML::LibXML::BEGIN@23 at line 225
use Data::Dumper;
# spent 138µs making 1 call to XML::LibXML::Error::BEGIN@225 # spent 105µs making 1 call to Exporter::import
226 return Data::Dumper->new([$self],['error'])->Dump;
227}
228
229111µs1;