]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1251208 - Bugzilla->request_cache() can be faster
authorDylan Hardison <dylan@mozilla.com>
Mon, 21 Mar 2016 21:12:55 +0000 (17:12 -0400)
committerDylan Hardison <dylan@mozilla.com>
Mon, 21 Mar 2016 21:13:31 +0000 (17:13 -0400)
r=dkl,a=dylan

without breaking stuff this time.

Bugzilla.pm
Bugzilla/Install/Util.pm

index 8bea97b394a4957b2ad0d6adbc9d064dfbd3c019..fba6d2a04f8157b4227a646d98c7f268b8326bae 100644 (file)
@@ -682,43 +682,21 @@ sub local_timezone {
              ||= DateTime::TimeZone->new(name => 'local');
 }
 
-# This creates the request cache for non-mod_perl installations.
-# 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;
-}
+my $request_cache = Bugzilla::Install::Util::_cache();
+
+sub request_cache { return $request_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
 # request_cache.  When using mod_perl, items in this cache live until the
 # worker process is terminated.
-our $_process_cache = {};
+my $process_cache = {};
 
 sub process_cache {
-    return $_process_cache;
+    return $process_cache;
 }
 
 # This is a memcached wrapper, which provides cross-process and cross-system
index 90ef2d4e362ac3555c1366e0a893af7d6221973e..3ec185c2b07b9f2ca40847a0517156b1d1fe242e 100644 (file)
@@ -651,15 +651,8 @@ 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;
-}
+my $_cache = {};
+sub _cache { return $_cache; }
 
 ###############################
 # Copied from Bugzilla::Util #