From 1e762fa5d00732bfdfb51fd8b3e56879f17d8f6e Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Wed, 23 Nov 2016 11:41:44 -0500 Subject: Bug 1319503 - Backport request_cache optimizations from upstream --- Bugzilla.pm | 24 ++---------------------- Bugzilla/Install/Util.pm | 10 +--------- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/Bugzilla.pm b/Bugzilla.pm index 72192d41a..f563ba9e3 100644 --- a/Bugzilla.pm +++ b/Bugzilla.pm @@ -731,30 +731,10 @@ sub audit { # This is identical to Install::Util::_cache so that things loaded # into Install::Util::_cache during installation can be read out # of request_cache later in installation. -our $_request_cache = $Bugzilla::Install::Util::_cache; - -sub request_cache { - if ($ENV{MOD_PERL}) { - require Apache2::RequestUtil; - # Sometimes (for example, during mod_perl.pl), the request - # object isn't available, and we should use $_request_cache instead. - my $request = eval { Apache2::RequestUtil->request }; - return $_request_cache if !$request; - return $request->pnotes(); - } - return $_request_cache; -} +use constant request_cache => Bugzilla::Install::Util::_cache(); sub clear_request_cache { - $_request_cache = {}; - if ($ENV{MOD_PERL}) { - require Apache2::RequestUtil; - my $request = eval { Apache2::RequestUtil->request }; - if ($request) { - my $pnotes = $request->pnotes; - delete @$pnotes{(keys %$pnotes)}; - } - } + %{ request_cache() } = (); } # This is a per-process cache. Under mod_cgi it's identical to the diff --git a/Bugzilla/Install/Util.pm b/Bugzilla/Install/Util.pm index 231ef8efc..c65c0e061 100644 --- a/Bugzilla/Install/Util.pm +++ b/Bugzilla/Install/Util.pm @@ -699,15 +699,7 @@ sub prevent_windows_dialog_boxes { # This is like request_cache, but it's used only by installation code # for checksetup.pl and things like that. -our $_cache = {}; -sub _cache { - # If the normal request_cache is available (which happens any time - # after the requirements phase) then we should use that. - if (eval { Bugzilla->request_cache; }) { - return Bugzilla->request_cache; - } - return $_cache; -} +use constant _cache => {}; ############################### # Copied from Bugzilla::Util # -- cgit v1.2.3-24-g4f1b