← 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 17:10:45 2013
Reported on Tue Oct 15 17:12:31 2013

Filename/usr/lib/perl5/XML/LibXML/Error.pm
StatementsExecuted 104 statements in 3.49ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11143µs53µsXML::LibXML::Error::::BEGIN@11XML::LibXML::Error::BEGIN@11
11137µs190µsXML::LibXML::Error::::BEGIN@15XML::LibXML::Error::BEGIN@15
11128µs160µsXML::LibXML::Error::::BEGIN@13XML::LibXML::Error::BEGIN@13
11128µs107µsXML::LibXML::Error::::BEGIN@34XML::LibXML::Error::BEGIN@34
11126µs125µsXML::LibXML::Error::::BEGIN@42XML::LibXML::Error::BEGIN@42
11126µs130µsXML::LibXML::Error::::BEGIN@29XML::LibXML::Error::BEGIN@29
11126µs125µsXML::LibXML::Error::::BEGIN@36XML::LibXML::Error::BEGIN@36
11124µs101µsXML::LibXML::Error::::BEGIN@225XML::LibXML::Error::BEGIN@225
11122µs132µsXML::LibXML::Error::::BEGIN@27XML::LibXML::Error::BEGIN@27
11121µs117µsXML::LibXML::Error::::BEGIN@28XML::LibXML::Error::BEGIN@28
11121µs102µsXML::LibXML::Error::::BEGIN@37XML::LibXML::Error::BEGIN@37
11120µs78µsXML::LibXML::Error::::BEGIN@30XML::LibXML::Error::BEGIN@30
11119µs117µsXML::LibXML::Error::::BEGIN@35XML::LibXML::Error::BEGIN@35
11119µs76µsXML::LibXML::Error::::BEGIN@39XML::LibXML::Error::BEGIN@39
11119µs73µsXML::LibXML::Error::::BEGIN@38XML::LibXML::Error::BEGIN@38
11119µs134µsXML::LibXML::Error::::BEGIN@12XML::LibXML::Error::BEGIN@12
11117µs75µsXML::LibXML::Error::::BEGIN@41XML::LibXML::Error::BEGIN@41
11117µs77µsXML::LibXML::Error::::BEGIN@32XML::LibXML::Error::BEGIN@32
11117µs87µsXML::LibXML::Error::::BEGIN@43XML::LibXML::Error::BEGIN@43
11116µs87µsXML::LibXML::Error::::BEGIN@44XML::LibXML::Error::BEGIN@44
11114µs84µsXML::LibXML::Error::::BEGIN@47XML::LibXML::Error::BEGIN@47
11114µs90µsXML::LibXML::Error::::BEGIN@40XML::LibXML::Error::BEGIN@40
11114µs69µsXML::LibXML::Error::::BEGIN@33XML::LibXML::Error::BEGIN@33
11114µs45µsXML::LibXML::Error::::BEGIN@50XML::LibXML::Error::BEGIN@50
11113µs59µsXML::LibXML::Error::::BEGIN@48XML::LibXML::Error::BEGIN@48
11113µs56µsXML::LibXML::Error::::BEGIN@45XML::LibXML::Error::BEGIN@45
11112µs78µsXML::LibXML::Error::::BEGIN@46XML::LibXML::Error::BEGIN@46
11112µs55µsXML::LibXML::Error::::BEGIN@49XML::LibXML::Error::BEGIN@49
11111µs46µsXML::LibXML::Error::::BEGIN@52XML::LibXML::Error::BEGIN@52
11110µs46µsXML::LibXML::Error::::BEGIN@54XML::LibXML::Error::BEGIN@54
1119µs41µsXML::LibXML::Error::::BEGIN@55XML::LibXML::Error::BEGIN@55
1119µs40µsXML::LibXML::Error::::BEGIN@53XML::LibXML::Error::BEGIN@53
1119µs45µsXML::LibXML::Error::::BEGIN@51XML::LibXML::Error::BEGIN@51
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
11366µs263µs
# spent 53µs (43+10) within XML::LibXML::Error::BEGIN@11 which was called: # once (43µs+10µs) by XML::LibXML::BEGIN@23 at line 11
use strict;
# spent 53µs making 1 call to XML::LibXML::Error::BEGIN@11 # spent 10µs making 1 call to strict::import
12382µs2248µs
# spent 134µs (19+115) within XML::LibXML::Error::BEGIN@12 which was called: # once (19µs+115µs) by XML::LibXML::BEGIN@23 at line 12
use vars qw($AUTOLOAD @error_domains $VERSION $WARNINGS);
# spent 134µs making 1 call to XML::LibXML::Error::BEGIN@12 # spent 115µs making 1 call to vars::import
133217µs2292µs
# spent 160µs (28+132) within XML::LibXML::Error::BEGIN@13 which was called: # once (28µs+132µs) by XML::LibXML::BEGIN@23 at line 13
use Carp;
# spent 160µs making 1 call to XML::LibXML::Error::BEGIN@13 # spent 132µs making 1 call to Exporter::import
14use overload
15
# spent 190µs (37+153) within XML::LibXML::Error::BEGIN@15 which was called: # once (37µs+153µ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 },
223137µs2344µs fallback => 1;
# spent 190µs making 1 call to XML::LibXML::Error::BEGIN@15 # spent 153µs making 1 call to overload::import
23
241700ns$WARNINGS = 0; # 0: supress, 1: report via warn, 2: report via die
251600ns$VERSION = "1.70"; # VERSION TEMPLATE: DO NOT CHANGE
26
27357µs2243µs
# spent 132µs (22+111) within XML::LibXML::Error::BEGIN@27 which was called: # once (22µs+111µs) by XML::LibXML::BEGIN@23 at line 27
use constant XML_ERR_NONE => 0;
# spent 132µs making 1 call to XML::LibXML::Error::BEGIN@27 # spent 111µs making 1 call to constant::import
28384µs2213µs
# spent 117µs (21+96) within XML::LibXML::Error::BEGIN@28 which was called: # once (21µs+96µs) by XML::LibXML::BEGIN@23 at line 28
use constant XML_ERR_WARNING => 1; # A simple warning
# spent 117µs making 1 call to XML::LibXML::Error::BEGIN@28 # spent 96µs making 1 call to constant::import
29380µs2233µs
# spent 130µs (26+103) within XML::LibXML::Error::BEGIN@29 which was called: # once (26µs+103µs) by XML::LibXML::BEGIN@23 at line 29
use constant XML_ERR_ERROR => 2; # A recoverable error
# spent 130µs making 1 call to XML::LibXML::Error::BEGIN@29 # spent 103µs making 1 call to constant::import
30357µs2137µs
# spent 78µs (20+59) within XML::LibXML::Error::BEGIN@30 which was called: # once (20µs+59µs) by XML::LibXML::BEGIN@23 at line 30
use constant XML_ERR_FATAL => 3; # A fatal error
# spent 78µs making 1 call to XML::LibXML::Error::BEGIN@30 # spent 59µs making 1 call to constant::import
31
32346µs2136µs
# spent 77µs (17+60) within XML::LibXML::Error::BEGIN@32 which was called: # once (17µs+60µs) by XML::LibXML::BEGIN@23 at line 32
use constant XML_ERR_FROM_NONE => 0;
# spent 77µs making 1 call to XML::LibXML::Error::BEGIN@32 # spent 60µs making 1 call to constant::import
33369µs2124µs
# spent 69µs (14+55) within XML::LibXML::Error::BEGIN@33 which was called: # once (14µs+55µs) by XML::LibXML::BEGIN@23 at line 33
use constant XML_ERR_FROM_PARSER => 1; # The XML parser
# spent 69µs making 1 call to XML::LibXML::Error::BEGIN@33 # spent 55µs making 1 call to constant::import
34361µs2187µs
# spent 107µs (28+80) within XML::LibXML::Error::BEGIN@34 which was called: # once (28µs+80µs) by XML::LibXML::BEGIN@23 at line 34
use constant XML_ERR_FROM_TREE => 2; # The tree module
# spent 107µs making 1 call to XML::LibXML::Error::BEGIN@34 # spent 80µs making 1 call to constant::import
35384µs2214µs
# spent 117µs (19+97) within XML::LibXML::Error::BEGIN@35 which was called: # once (19µs+97µs) by XML::LibXML::BEGIN@23 at line 35
use constant XML_ERR_FROM_NAMESPACE => 3; # The XML Namespace module
# spent 117µs making 1 call to XML::LibXML::Error::BEGIN@35 # spent 97µs making 1 call to constant::import
36386µs2224µs
# spent 125µs (26+99) within XML::LibXML::Error::BEGIN@36 which was called: # once (26µs+99µs) by XML::LibXML::BEGIN@23 at line 36
use constant XML_ERR_FROM_DTD => 4; # The XML DTD validation
# spent 125µs making 1 call to XML::LibXML::Error::BEGIN@36 # spent 99µs making 1 call to constant::import
37360µs2184µs
# spent 102µs (21+81) within XML::LibXML::Error::BEGIN@37 which was called: # once (21µs+81µs) by XML::LibXML::BEGIN@23 at line 37
use constant XML_ERR_FROM_HTML => 5; # The HTML parser
# spent 102µs making 1 call to XML::LibXML::Error::BEGIN@37 # spent 81µs making 1 call to constant::import
38389µs2126µs
# spent 73µs (19+53) within XML::LibXML::Error::BEGIN@38 which was called: # once (19µs+53µ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 53µs making 1 call to constant::import
39353µs2134µs
# spent 76µs (19+57) within XML::LibXML::Error::BEGIN@39 which was called: # once (19µs+57µs) by XML::LibXML::BEGIN@23 at line 39
use constant XML_ERR_FROM_OUTPUT => 7; # The serialization code
# spent 76µs making 1 call to XML::LibXML::Error::BEGIN@39 # spent 57µs making 1 call to constant::import
40352µs2166µs
# spent 90µs (14+76) within XML::LibXML::Error::BEGIN@40 which was called: # once (14µs+76µs) by XML::LibXML::BEGIN@23 at line 40
use constant XML_ERR_FROM_IO => 8; # The Input/Output stack
# spent 90µs making 1 call to XML::LibXML::Error::BEGIN@40 # spent 76µs making 1 call to constant::import
413145µs2132µs
# spent 75µs (17+58) within XML::LibXML::Error::BEGIN@41 which was called: # once (17µs+58µs) by XML::LibXML::BEGIN@23 at line 41
use constant XML_ERR_FROM_FTP => 9; # The FTP module
# spent 75µs making 1 call to XML::LibXML::Error::BEGIN@41 # spent 58µs making 1 call to constant::import
42387µs2224µs
# spent 125µs (26+99) within XML::LibXML::Error::BEGIN@42 which was called: # once (26µs+99µs) by XML::LibXML::BEGIN@23 at line 42
use constant XML_ERR_FROM_HTTP => 10; # The FTP module
# spent 125µs making 1 call to XML::LibXML::Error::BEGIN@42 # spent 99µs making 1 call to constant::import
43355µs2158µs
# spent 87µs (17+71) within XML::LibXML::Error::BEGIN@43 which was called: # once (17µs+71µs) by XML::LibXML::BEGIN@23 at line 43
use constant XML_ERR_FROM_XINCLUDE => 11; # The XInclude processing
# spent 87µs making 1 call to XML::LibXML::Error::BEGIN@43 # spent 71µs making 1 call to constant::import
44349µs2157µs
# spent 87µs (16+71) within XML::LibXML::Error::BEGIN@44 which was called: # once (16µs+71µs) by XML::LibXML::BEGIN@23 at line 44
use constant XML_ERR_FROM_XPATH => 12; # The XPath module
# spent 87µs making 1 call to XML::LibXML::Error::BEGIN@44 # spent 71µs making 1 call to constant::import
45339µs2100µs
# spent 56µs (13+43) within XML::LibXML::Error::BEGIN@45 which was called: # once (13µs+43µs) by XML::LibXML::BEGIN@23 at line 45
use constant XML_ERR_FROM_XPOINTER => 13; # The XPointer module
# spent 56µs making 1 call to XML::LibXML::Error::BEGIN@45 # spent 44µs making 1 call to constant::import
46347µs2144µs
# spent 78µs (12+66) within XML::LibXML::Error::BEGIN@46 which was called: # once (12µs+66µs) by XML::LibXML::BEGIN@23 at line 46
use constant XML_ERR_FROM_REGEXP => 14; # The regular expressions module
# spent 78µs making 1 call to XML::LibXML::Error::BEGIN@46 # spent 66µs making 1 call to constant::import
47348µs2154µs
# spent 84µs (14+70) within XML::LibXML::Error::BEGIN@47 which was called: # once (14µs+70µs) by XML::LibXML::BEGIN@23 at line 47
use constant XML_ERR_FROM_DATATYPE => 15; # The W3C XML Schemas Datatype module
# spent 84µs making 1 call to XML::LibXML::Error::BEGIN@47 # spent 70µs making 1 call to constant::import
48387µs2104µs
# spent 59µs (13+45) within XML::LibXML::Error::BEGIN@48 which was called: # once (13µs+45µs) by XML::LibXML::BEGIN@23 at line 48
use constant XML_ERR_FROM_SCHEMASP => 16; # The W3C XML Schemas parser module
# spent 59µs making 1 call to XML::LibXML::Error::BEGIN@48 # spent 45µs making 1 call to constant::import
49338µs299µs
# spent 55µs (12+43) within XML::LibXML::Error::BEGIN@49 which was called: # once (12µs+43µs) by XML::LibXML::BEGIN@23 at line 49
use constant XML_ERR_FROM_SCHEMASV => 17; # The W3C XML Schemas validation module
# spent 55µs making 1 call to XML::LibXML::Error::BEGIN@49 # spent 44µs making 1 call to constant::import
50337µs277µs
# spent 45µs (14+32) within XML::LibXML::Error::BEGIN@50 which was called: # once (14µs+32µs) by XML::LibXML::BEGIN@23 at line 50
use constant XML_ERR_FROM_RELAXNGP => 18; # The Relax-NG parser module
# spent 45µs making 1 call to XML::LibXML::Error::BEGIN@50 # spent 32µs making 1 call to constant::import
51357µs280µs
# spent 45µs (9+36) within XML::LibXML::Error::BEGIN@51 which was called: # once (9µs+36µs) by XML::LibXML::BEGIN@23 at line 51
use constant XML_ERR_FROM_RELAXNGV => 19; # The Relax-NG validator module
# spent 45µs making 1 call to XML::LibXML::Error::BEGIN@51 # spent 35µs making 1 call to constant::import
52333µs281µs
# spent 46µs (11+35) within XML::LibXML::Error::BEGIN@52 which was called: # once (11µs+35µs) by XML::LibXML::BEGIN@23 at line 52
use constant XML_ERR_FROM_CATALOG => 20; # The Catalog module
# spent 46µs making 1 call to XML::LibXML::Error::BEGIN@52 # spent 35µs making 1 call to constant::import
53334µs271µs
# spent 40µs (9+31) within XML::LibXML::Error::BEGIN@53 which was called: # once (9µs+31µs) by XML::LibXML::BEGIN@23 at line 53
use constant XML_ERR_FROM_C14N => 21; # The Canonicalization module
# spent 40µs making 1 call to XML::LibXML::Error::BEGIN@53 # spent 31µs making 1 call to constant::import
54333µs283µs
# spent 46µs (10+36) within XML::LibXML::Error::BEGIN@54 which was called: # once (10µs+36µs) by XML::LibXML::BEGIN@23 at line 54
use constant XML_ERR_FROM_XSLT => 22; # The XSLT engine from libxslt
# spent 46µs making 1 call to XML::LibXML::Error::BEGIN@54 # spent 36µs making 1 call to constant::import
5531.21ms273µs
# spent 41µs (9+32) within XML::LibXML::Error::BEGIN@55 which was called: # once (9µs+32µs) by XML::LibXML::BEGIN@23 at line 55
use constant XML_ERR_FROM_VALID => 23; # The validaton module
# spent 41µs making 1 call to XML::LibXML::Error::BEGIN@55 # spent 32µs making 1 call to constant::import
56
5714µ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
661900ns 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)=@_;
2253102µs2179µs
# spent 101µs (24+78) within XML::LibXML::Error::BEGIN@225 which was called: # once (24µs+78µs) by XML::LibXML::BEGIN@23 at line 225
use Data::Dumper;
# spent 101µs making 1 call to XML::LibXML::Error::BEGIN@225 # spent 78µs making 1 call to Exporter::import
226 return Data::Dumper->new([$self],['error'])->Dump;
227}
228
22917µs1;