diff options
author | Frédéric Buclin <LpSolit@gmail.com> | 2012-02-29 17:15:57 +0100 |
---|---|---|
committer | Frédéric Buclin <LpSolit@gmail.com> | 2012-02-29 17:15:57 +0100 |
commit | 2e3a5735240ad3bc777e245bf1ce1505e3579fda (patch) | |
tree | d3f4df1d86913127422de7bc84a74912e72166c8 | |
parent | 2231368ed7461a3be4f802462628cb7b261f829c (diff) | |
download | bugzilla-2e3a5735240ad3bc777e245bf1ce1505e3579fda.tar.gz bugzilla-2e3a5735240ad3bc777e245bf1ce1505e3579fda.tar.xz |
Bug 731175: Bugzilla::Field shouldn't assume that someone else already loaded required modules
r=glob a=LpSolit
-rw-r--r-- | Bugzilla/Field/Choice.pm | 6 | ||||
-rw-r--r-- | Bugzilla/Template.pm | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/Bugzilla/Field/Choice.pm b/Bugzilla/Field/Choice.pm index b4666a27c..8c5873fdb 100644 --- a/Bugzilla/Field/Choice.pm +++ b/Bugzilla/Field/Choice.pm @@ -76,8 +76,10 @@ sub type { my $field_obj = blessed $field ? $field : Bugzilla::Field->check($field); my $field_name = $field_obj->name; - if ($class->CLASS_MAP->{$field_name}) { - return $class->CLASS_MAP->{$field_name}; + if (my $package = $class->CLASS_MAP->{$field_name}) { + # Callers expect the module to be already loaded. + eval "require $package"; + return $package; } # For generic classes, we use a lowercase class name, so as diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm index c0c9b5db9..dcbe37b3f 100644 --- a/Bugzilla/Template.pm +++ b/Bugzilla/Template.pm @@ -10,7 +10,6 @@ package Bugzilla::Template; use strict; -use Bugzilla::Bug; use Bugzilla::Constants; use Bugzilla::WebService::Constants; use Bugzilla::Hook; @@ -19,10 +18,8 @@ use Bugzilla::Install::Util qw(install_string template_include_path include_languages); use Bugzilla::Keyword; use Bugzilla::Util; -use Bugzilla::User; use Bugzilla::Error; use Bugzilla::Search; -use Bugzilla::Status; use Bugzilla::Token; use Cwd qw(abs_path); @@ -315,7 +312,10 @@ sub get_bug_link { my $dbh = Bugzilla->dbh; if (defined $bug) { - $bug = blessed($bug) ? $bug : new Bugzilla::Bug($bug); + if (!blessed($bug)) { + require Bugzilla::Bug; + $bug = new Bugzilla::Bug($bug); + } return $link_text if $bug->{error}; } |