summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Object.pm
diff options
context:
space:
mode:
authorByron Jones <glob@mozilla.com>2015-09-02 07:41:48 +0200
committerByron Jones <glob@mozilla.com>2015-09-02 07:41:48 +0200
commit0f2dd8d714a424cf383d925f8b55a098716b0660 (patch)
tree93f4c1304268eefd0ca169be1260be257309acd9 /Bugzilla/Object.pm
parent34e6b2e7cad19a2345328323fd81ac477e13e7eb (diff)
downloadbugzilla-0f2dd8d714a424cf383d925f8b55a098716b0660.tar.gz
bugzilla-0f2dd8d714a424cf383d925f8b55a098716b0660.tar.xz
Bug 1199136 - lower memory consumption to better operate in bugzilladm's
low memory environment
Diffstat (limited to 'Bugzilla/Object.pm')
-rw-r--r--Bugzilla/Object.pm32
1 files changed, 32 insertions, 0 deletions
diff --git a/Bugzilla/Object.pm b/Bugzilla/Object.pm
index 2349b57e6..84d384d2b 100644
--- a/Bugzilla/Object.pm
+++ b/Bugzilla/Object.pm
@@ -276,6 +276,16 @@ sub object_cache_key {
}
}
+sub object_cache_clearall {
+ my $class = shift;
+ my $cache = Bugzilla->request_cache;
+ $class = blessed($class) if blessed($class);
+ my $prefix = $class . ',';
+ foreach my $key (grep { substr($_, 0, length($prefix)) eq $prefix } keys %$cache) {
+ delete $cache->{$key};
+ }
+}
+
# To support serialisation, we need to capture the keys in an object's default
# hashref.
sub _serialisation_keys {
@@ -1526,6 +1536,28 @@ $bug->object_cache_set();
=back
+=item C<object_cache_clearall>
+
+=over
+
+=item B<Description>
+
+Removes all objects for the specified class from the cache.
+
+=item B<Params>
+
+(none)
+
+=item B<Returns>
+
+(nothing)
+
+=item B<Example>
+
+Bugzilla::User->object_cache_clearall();
+
+=back
+
=back
=head1 CLASS FUNCTIONS