From 61e26c1346d60a18946e50a35f95bfe3f223d408 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Mon, 23 Feb 2009 22:00:38 +0000 Subject: Bug 476607: "Constant subroutine redefined" warnings from Bugzilla::Field::Choice Patch By Max Kanat-Alexander r=LpSolit, a=mkanat --- Bugzilla/Field/Choice.pm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'Bugzilla/Field') diff --git a/Bugzilla/Field/Choice.pm b/Bugzilla/Field/Choice.pm index 5f1578d2b..fe5c7bdcb 100644 --- a/Bugzilla/Field/Choice.pm +++ b/Bugzilla/Field/Choice.pm @@ -93,18 +93,18 @@ sub type { # For generic classes, we use a lowercase class name, so as # not to interfere with any real subclasses we might make some day. my $package = "Bugzilla::Field::Choice::$field_name"; + Bugzilla->request_cache->{"field_$package"} = $field_obj; - # We check defined so that the package and the stored field are only - # created once globally (at least per request). We prefix it with - # field_ (instead of suffixing it) so that we don't somehow conflict - # with the names of custom fields. - if (!defined Bugzilla->request_cache->{"field_$package"}) { + # This package only needs to be created once. We check if the DB_TABLE + # glob for this package already exists, which tells us whether or not + # we need to create the package (this works even under mod_perl, where + # this package definition will persist across requests)). + if (!defined *{"${package}::DB_TABLE"}) { eval < '$field_name'; EOC - Bugzilla->request_cache->{"field_$package"} = $field_obj; } return $package; -- cgit v1.2.3-24-g4f1b