]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 703928: Bugzilla::Util should depend on Bugzilla::Error, not the opposite
authorFrédéric Buclin <LpSolit@gmail.com>
Mon, 21 Nov 2011 07:37:26 +0000 (08:37 +0100)
committerFrédéric Buclin <LpSolit@gmail.com>
Mon, 21 Nov 2011 07:37:26 +0000 (08:37 +0100)
r=dkl a=LpSolit

Bugzilla/Error.pm
Bugzilla/Util.pm

index 395cc0dc9d7d3c057683a17d97bc31dbcef07903..b88e9a26542f47466a0d56c0eb8b670423f9453a 100644 (file)
@@ -30,7 +30,7 @@ use base qw(Exporter);
 
 use Bugzilla::Constants;
 use Bugzilla::WebService::Constants;
-use Bugzilla::Util;
+use Bugzilla::Hook;
 
 use Carp;
 use Data::Dumper;
@@ -62,12 +62,13 @@ sub _throw_error {
     my $datadir = bz_locations()->{'datadir'};
     # If a writable $datadir/errorlog exists, log error details there.
     if (-w "$datadir/errorlog") {
+        require Bugzilla::Util;
         require Data::Dumper;
         my $mesg = "";
         for (1..75) { $mesg .= "-"; };
         $mesg .= "\n[$$] " . time2str("%D %H:%M:%S ", time());
         $mesg .= "$name $error ";
-        $mesg .= remote_ip();
+        $mesg .= Bugzilla::Util::remote_ip();
         $mesg .= Bugzilla->user->login;
         $mesg .= (' actually ' . Bugzilla->sudoer->login) if Bugzilla->sudoer;
         $mesg .= "\n";
@@ -115,7 +116,6 @@ sub _throw_error {
         {
             # Clone the hash so we aren't modifying the constant.
             my %error_map = %{ WS_ERROR_CODE() };
-            require Bugzilla::Hook;
             Bugzilla::Hook::process('webservice_error_codes', 
                                     { error_map => \%error_map });
             my $code = $error_map{$error};
@@ -186,6 +186,8 @@ sub ThrowTemplateError {
     # Try a template first; but if this one fails too, fall back
     # on plain old print statements.
     if (!$template->process("global/code-error.html.tmpl", $vars)) {
+        require Bugzilla::Util;
+        import Bugzilla::Util qw(html_quote);
         my $maintainer = Bugzilla->params->{'maintainer'};
         my $error = html_quote($vars->{'template_error_msg'});
         my $error2 = html_quote($template->error());
index a3ec2aafef2f62c746d331fef52700a80e50e7e2..c0bb5630c186f824d195edb17ebe2e64f1609c99 100644 (file)
@@ -47,6 +47,7 @@ use base qw(Exporter);
 
 use Bugzilla::Constants;
 use Bugzilla::RNG qw(irand);
+use Bugzilla::Error;
 
 use Date::Parse;
 use Date::Format;
@@ -639,10 +640,9 @@ sub get_text {
     $vars ||= {};
     $vars->{'message'} = $name;
     my $message;
-    if (!$template->process('global/message.txt.tmpl', $vars, \$message)) {
-        require Bugzilla::Error;
-        Bugzilla::Error::ThrowTemplateError($template->error());
-    }
+    $template->process('global/message.txt.tmpl', $vars, \$message)
+      || ThrowTemplateError($template->error());
+
     # Remove the indenting that exists in messages.html.tmpl.
     $message =~ s/^    //gm;
     return $message;
@@ -657,13 +657,10 @@ sub template_var {
     my %vars;
     # Note: If we suddenly start needing a lot of template_var variables,
     # they should move into their own template, not field-descs.
-    my $result = $template->process('global/field-descs.none.tmpl', 
-                                    { vars => \%vars, in_template_var => 1 });
-    # Bugzilla::Error can't be "use"d in Bugzilla::Util.
-    if (!$result) {
-        require Bugzilla::Error;
-        Bugzilla::Error::ThrowTemplateError($template->error);
-    }
+    $template->process('global/field-descs.none.tmpl',
+                       { vars => \%vars, in_template_var => 1 })
+      || ThrowTemplateError($template->error());
+
     $cache->{$lang} = \%vars;
     return $vars{$name};
 }
@@ -688,11 +685,8 @@ use constant UTF8_ACCIDENTAL => qw(shiftjis big5-eten euc-kr euc-jp);
 sub detect_encoding {
     my $data = shift;
 
-    if (!Bugzilla->feature('detect_charset')) {
-        require Bugzilla::Error;
-        Bugzilla::Error::ThrowCodeError('feature_disabled',
-            { feature => 'detect_charset' });
-    }
+    Bugzilla->feature('detect_charset')
+      || ThrowCodeError('feature_disabled', { feature => 'detect_charset' });
 
     require Encode::Detect::Detector;
     import Encode::Detect::Detector 'detect';