summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrédéric Buclin <LpSolit@gmail.com>2011-10-23 13:11:46 +0200
committerFrédéric Buclin <LpSolit@gmail.com>2011-10-23 13:11:46 +0200
commitce3970fd0a2890b88485c2723e7af1633544c741 (patch)
tree366eafb66421457ad9e0b62172e8d8c1c37477cc
parente9f859e128e5c9c6e74a95c79ab60ed123a94c14 (diff)
downloadbugzilla-ce3970fd0a2890b88485c2723e7af1633544c741.tar.gz
bugzilla-ce3970fd0a2890b88485c2723e7af1633544c741.tar.xz
Bug 696541: Only load some external modules when needed, to improve the load time of pages
r/a=mkanat
-rw-r--r--Bugzilla/Install/Localconfig.pm1
-rw-r--r--Bugzilla/Install/Util.pm10
-rw-r--r--Bugzilla/RNG.pm7
3 files changed, 10 insertions, 8 deletions
diff --git a/Bugzilla/Install/Localconfig.pm b/Bugzilla/Install/Localconfig.pm
index 1ee7aca67..2f1a8d527 100644
--- a/Bugzilla/Install/Localconfig.pm
+++ b/Bugzilla/Install/Localconfig.pm
@@ -36,7 +36,6 @@ use Bugzilla::Util qw(generate_random_password);
use Data::Dumper;
use File::Basename qw(dirname);
-use IO::File;
use Safe;
use base qw(Exporter);
diff --git a/Bugzilla/Install/Util.pm b/Bugzilla/Install/Util.pm
index bd8942507..43433eb96 100644
--- a/Bugzilla/Install/Util.pm
+++ b/Bugzilla/Install/Util.pm
@@ -29,11 +29,9 @@ use strict;
use Bugzilla::Constants;
use Encode;
-use ExtUtils::MM ();
use File::Basename;
use File::Spec;
use POSIX qw(setlocale LC_CTYPE);
-use Safe;
use Scalar::Util qw(tainted);
use Term::ANSIColor qw(colored);
use PerlIO;
@@ -58,6 +56,9 @@ our @EXPORT_OK = qw(
sub bin_loc {
my ($bin, $path) = @_;
+ # This module is not needed most of the time and is a bit slow,
+ # so we only load it when calling bin_loc().
+ require ExtUtils::MM;
# If the binary is a full path...
if ($bin =~ m{[/\\]}) {
@@ -541,7 +542,10 @@ sub no_checksetup_from_cgi {
# Used by install_string
sub _get_string_from_file {
my ($string_id, $file) = @_;
-
+ # This module is only needed by checksetup.pl,
+ # so only load it when needed.
+ require Safe;
+
return undef if !-e $file;
my $safe = new Safe;
$safe->rdo($file);
diff --git a/Bugzilla/RNG.pm b/Bugzilla/RNG.pm
index caa63bae2..9ee6d49e5 100644
--- a/Bugzilla/RNG.pm
+++ b/Bugzilla/RNG.pm
@@ -24,7 +24,6 @@ use strict;
use base qw(Exporter);
use Bugzilla::Constants qw(ON_WINDOWS);
-use IO::File;
use Math::Random::ISAAC;
use if ON_WINDOWS, 'Win32::API';
@@ -156,14 +155,14 @@ sub _get_seed {
sub _read_seed_from {
my ($from) = @_;
- my $fh = IO::File->new($from, "r") or die "$from: $!";
+ open(my $fh, '<', $from) or die "$from: $!";
my $buffer;
- $fh->read($buffer, SEED_SIZE);
+ read($fh, $buffer, SEED_SIZE);
if (length($buffer) < SEED_SIZE) {
die "Could not read enough seed bytes from $from, got only "
. length($buffer);
}
- $fh->close;
+ close $fh;
return $buffer;
}